【Linux 】 ps命令详解,查看进程pid

这篇具有很好参考价值的文章主要介绍了【Linux 】 ps命令详解,查看进程pid。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. ps概述

ps 命令是最常用的监控进程的命令,通过此命令可以查看系统中所有运行进程的详细信息。

ps 命令有多种不同的使用方法,这常常给初学者带来困惑。在各种 Linux 论坛上,询问 ps 命令语法的帖子屡见不鲜,而出现这样的情况,还要归咎于 UNIX 悠久的历史和庞大的派系。在不同的 Linux 发行版上,ps 命令的语法各不相同,为此,Linux 采取了一个折中的方法,即融合各种不同的风格,兼顾那些已经习惯了其它系统上使用 ps 命令的用户。

2. ps语法

ps 命令的基本格式如下:

#查看系统中所有的进程,使用 BS 操作系统格式
[root@localhost ~]# ps aux

#查看系统中所有的进程,使用 Linux 标准命令格式
[root@localhost ~]# ps -les

选项:

  • a:显示一个终端的所有进程,除会话引线外;
  • u:显示进程的归属用户及内存的使用情况;
  • x:显示没有控制终端的进程;
  • -l:长格式显示更加详细的信息;
  • -e:显示所有进程;
  • -f 完整格式显示

可以看到,ps 命令有些与众不同,它的部分选项不能加入"-“,比如命令"ps aux”,其中"aux"是选项,但是前面不能带“-”。

大家如果执行 “man ps” 命令,则会发现 ps 命令的帮助为了适应不同的类 UNIX 系统,可用格式非常多,不方便记忆。所以,我建议大家记忆几个固定选项即可。比如:

  • “ps aux” 可以查看系统中所有的进程;
  • “ps -le” 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;
  • “ps -ef” 同le相似
  • “ps -l” 只能看到当前 Shell 产生的进程;

有这三个命令就足够了,下面分别来查看。

【例 1】ps aux

[root@localhost ~]# ps aux
#查看系统中所有的进程
[root@EMS3 ~]# ps aux|head -n  10
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 191932  5000 ?        Ss    2022  46:32 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root         2  0.0  0.0      0     0 ?        S     2022   0:04 [kthreadd]
root         3  0.0  0.0      0     0 ?        S     2022   4:19 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S     2022   0:00 [kworker/0:0H]
root         7  0.0  0.0      0     0 ?        S     2022   0:48 [migration/0]
root        10  0.0  0.0      0     0 ?        S<    2022   0:00 [lru-add-drain]
root        11  0.0  0.0      0     0 ?        S     2022   0:15 [watchdog/0]
…省略部分输出…

或使用 ps aux |head -n 10 只展示前10,条记录,方便查看列头含义

linux用ps查看pid,linux,unix,ps

【例2 】 ps -ef

[root@EMS3 ~]# ps -ef|head -n  10
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2022 ?        00:46:32 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
root         2     0  0  2022 ?        00:00:04 [kthreadd]
root         3     2  0  2022 ?        00:04:19 [ksoftirqd/0]
root         5     2  0  2022 ?        00:00:00 [kworker/0:0H]
root         7     2  0  2022 ?        00:00:48 [migration/0]
root        10     2  0  2022 ?        00:00:00 [lru-add-drain]
root        11     2  0  2022 ?        00:00:15 [watchdog/0]

【例3 】 ps -le
"ps aux"命令可以看到系统中所有的进程,"ps -le"命令也能看到系统中所有的进程。由于 “-l” 选项的作用,所以 “ps -le” 命令能够看到更加详细的信息,比如父进程的 PID、优先级等。但是这两个命令的基本作用是一致的,掌握其中一个就足够了。

[root@localhost ~]# ps -le
[root@EMS3 ~]# ps -le|head -n  10
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 47983 ep_pol ?        00:46:32 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:04 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:04:19 ksoftirqd/0
5 S     0     5     2  0  80   0 -     0 worker ?        00:00:00 kworker/0:0H
1 S     0     7     2  0 -40   - -     0 smpboo ?        00:00:48 migration/0
1 S     0     8     2  0  80   0 -     0 rcu_gp ?        00:00:00 rcu_bh
1 S     0     9     2  0  80   0 -     0 rcu_gp ?        00:58:12 rcu_sched
5 S     0    10     2  0  60 -20 -     0 rescue ?        00:00:00 lru-add-drain
5 S     0    11     2  0 -40   - -     0 smpboo ?        00:00:15 watchdog/0
…省略部分输出…

或使用 ps -ef |head -n 10 只展示前10,条记录,方便查看列头含义
linux用ps查看pid,linux,unix,ps
【例 4】如果不想看到所有的进程,只想查看一下当前登录产生了哪些进程,那只需使用 “ps -l” 命令就足够了:

[root@localhost ~]# ps -l
#查看当前登录产生的进程
F S UID   PID  PPID C PRI NI ADDR SZ WCHAN TTY       TIME CMD
4 S 0   18618 18614 0  80  0 - 1681  -     pts/1 00:00:00 bash
4 R 0   18683 18618 4  80  0 - 1619  -     pts/1 00:00:00 ps

可以看到,这次从 pts/1 虚拟终端登录,只产生了两个进程:一个是登录之后生成的 Shell,也就是 bash;另一个是正在执行的 ps 命令。

我们再来说说僵尸进程。僵尸进程的产生一般是由于进程非正常停止或程序编写错误,导致子进程先于父进程结束,而父进程又没有正确地回收子进程,从而造成子进程一直存在于内存当中,这就是僵尸进程。

僵尸进程会对主机的稳定性产生影响,所以,在产生僵尸进程后,一定要对产生僵尸进程的软件进行优化,避免一直产生僵尸进程;对于已经产生的僵尸进程,可以在查找出来之后强制中止。

3. 指定pid进行查看

格式 :
ps -p xxx
ps -p xxx -f 更详细的信息

4. 查看进程启动路径

#查看tomcat进程
ps -ef | grep tomcat

单个进程启动之后会在 /proc下面有一个pid对应的路径
如PID为1521,到/proc/1521下,ls -l会看到类似如下信息:

-r--r--r--    1 oracle   oinstall        0 12月 29 18:58 cmdline
lrwxrwxrwx    1 oracle   oinstall        0 12月 29 18:58 cwd -> /XXX/ultserver_aa
-r--------    1 oracle   oinstall        0 12月 29 18:58 environ

cwd就是要查找的进程所在路径文章来源地址https://www.toymoban.com/news/detail-525624.html

到了这里,关于【Linux 】 ps命令详解,查看进程pid的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux命令详解 | ps命令】 ps命令用于显示当前系统中运行的进程列表,帮助监控系统状态。

    在Linux系统中, ps 命令是一个重要的工具,用于展示当前正在运行的进程列表。作为一个博主,了解如何使用 ps 命令可以帮助你监控系统状态,定位问题,以及优化资源分配。本文将从参数列表、知识点讲解和实际示例等方面,深入介绍 ps 命令。 下表列出了 ps 命令的常用参

    2024年02月13日
    浏览(32)
  • Linux -- 查看进程 top命令 详解

    我们上篇介绍了, Linux 中的进程等概念,那么,在Linux 中如何查看进程呢 ?? 我们常用到的有两个命令, PS 和 top 两个命令,今天先来介绍下 top 命令~! 主要是 交互式的,动态 的显示 进程信息~!!! 语法 : top [ -d 数字 ] [ 选项 ] 选项 : -d : 后面可以接秒数,就是整个

    2024年02月07日
    浏览(35)
  • Linux查看pid进程

    一、查看端口占用的进程 1、lsof -i:端口号 查看某一端口的占用情况 2、netstat -ntlp 查看当前所有TCP端口‘ 结合grep可以进一步查看具体端口号的占用情况 netstat -tunlp|grep 端口号,查看端口占用情况 -t , 显示tcp的相关选项 -u, 显示udp的相关选项 -n, 拒绝显示别名,能显示数字

    2024年02月15日
    浏览(23)
  • Linux查看进程PID的方法(linux查进程的pid)附带自动kill 掉

    Linux查看进程PID的方法 Linux作为一款多用户、多任务的操作系统,可以同时处理多个任务,每个任务的执行都由进程来实现。在每个进程执行的过程中,都会有一个唯一标识符,即称为PID(Process Identifier)进程ID。Linux系统有很多命令用来查看进程PID,下面介绍几种常用的查看

    2024年02月01日
    浏览(80)
  • Linux查看进程PID的方法?

    在Linux系统中,进程是指正在运行的程序。每个进程都有一个唯一的进程 ID(PID),可以用来识别和管理它们。 以下是查看进程 PID 的几种方法: 使用 ps 命令查看进程 PID: ps 命令可以列出当前正在运行的进程信息,包括进程名、PID、状态等。可以使用以下命令来查看进程

    2024年02月10日
    浏览(32)
  • Linux查看进程运行输出(/proc/<pid>/fd)

    输入ps或ps -ef root@TinaLinux:/proc/631/fd# ps PID   USER     TIME   COMMAND     1 root       0:03 /sbin/procd ...........   631 root       0:06 ./rt_agent   694 root       0:00 [kworker/2:2]   771 root       0:23 /home/upg/fupg 要查看的进程id为631。 切换到/proc/pid/fd下,如 root@TinaLinux:~# cd /proc/631/fd root@TinaLin

    2024年02月11日
    浏览(42)
  • Linux 使用PS命令掌握进程管理

    在Linux系统中,进程管理是系统管理员和开发人员必备的技能之一。而PS命令作为进程管理的重要工具,可以帮助我们查看和监控系统中运行的进程。本文将详细解析PS命令的使用方法和输出结果,帮助读者全面掌握进程管理的利器。 PS命令概述: PS命令是Process Status的缩写,

    2024年01月19日
    浏览(30)
  • linux下查看某进程内有多少个线程的方法(ps、top、Htop)

    下面记录一下在linux下使用ps、top、Htop等指令查看某进程内有多少个线程的方法; 要想查看某个进程内的线程信息,首先得知道我们要查看的是哪个进程,所以第一步要确认该进程的进程号: 比如我们想查看“EngineServer9500”进程内有多少个线程,首先我们需要得到“EngineS

    2024年02月11日
    浏览(30)
  • 好用的Linux命令-通过pid查看端口号

    1. 先把服务启动起来,通过ps -ef|grep 找到对应的pid,比如 2. 通过pid查询对应的端口信息    

    2024年02月11日
    浏览(41)
  • 【linux】服务器CPU占用50%,top/htop/ps却看不到异常进程?使用unhide可以查看!

    htop发现前32个核全被占满了,但是却找不到对应进程号 sysdig -c topprocs_cpu 发现CPU占用3143.28%,因为是32核,平均每核就是接近100% sysdig -c topprocs_cpu ,可以发现病毒进程号 检查 /etc/sysctl.conf 如果该文件只有一行 fs.file-max = =2097152 则大概率被隐藏 文件 / 进程 类病毒感染,注释掉

    2024年02月03日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包