linux: ps 与 pidof 用法详解

2024-01-08 18:54:32


ps

描述

process status,用于查询进程状态。Linux 上进程有5种状态:

  1. 运行(正在运行或在运行队列中等待)

  2. 中断(休眠中,受阻,在等待某个条件的形成或接受到信号)

  3. 不可中断(收到信号不映醒和不可运行,进程必等待直到有中断发生)

  4. 僵死(进程已终止,但进程描述符存在,直到父进程调用 wait4() 系统调用后释放)

  5. 停止(进程收到 SIGSTOP,SIGSTP,SIGTIN,SIGTOU 信号后停止运行运行)

ps 工具标识进程的5种状态码:

  1. R 运行 runnable (on run queue)
  2. S 中断 sleeping
  3. D 不可中断 uninterruptible sleep (usually lO)
  4. Z 僵死 a defunct (“zombie”) process
  5. T 停止 traced or stopped

语法

ps [参数]

参数

-a 显示所有终端下执行的进程,包含其他用户的进程 
-A 显示所有进程
-e 和A功能一样
-w 显示加宽可以显示较多的资讯
-H 显示树状结构,表示程序间的相互关系
-f 全格式显示进程,用ASCII字符显示树状结构,表达程序间的相互关系
-c 显示进程的真实名称
-x 显示所有进程,无论是否运行在终端上
-u 显示用户相关的进程或者与用户相关的属性
-r 只显示正在运行的进程

例子

# 显示较详细的资讯,u查看特定用户进程
ps -au

# 显示所有包含其他使用者的进程,x参数会显示没有控制终端的进程
pa -aux

au(x)的输出结果如下:

[root@node01 ~]# ps -aux |head
USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  4.5  1.7  93292 13388 ?        Ss   17:26   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 18
root           2  0.0  0.0      0     0 ?        S    17:26   0:00 [kthreadd]
root           3  0.0  0.0      0     0 ?        I<   17:26   0:00 [rcu_gp]
root           4  0.0  0.0      0     0 ?        I<   17:26   0:00 [rcu_par_gp]
root           5  0.0  0.0      0     0 ?        I<   17:26   0:00 [slub_flushwq]
root           6  0.0  0.0      0     0 ?        I    17:26   0:00 [kworker/0:0-events]
root           7  0.0  0.0      0     0 ?        I<   17:26   0:00 [kworker/0:0H-events_highpri]
root           8  0.0  0.0      0     0 ?        I    17:26   0:00 [kworker/0:1-events]
root           9  0.0  0.0      0     0 ?        I    17:26   0:00 [kworker/u256:0-events_unbound]

输出结果解释如下:

USER: 进程拥有者
PID: pid
%CPU: 占用的CPU使用率
%MEM: 占用的内存使用率
VSZ: 占用的虚拟内存大小
RSS: 占用的内存大小
TTY: 终端的次要设备号码 (minor device number of try)
STAT: 进程的状态
   	R 运行 runnable (on run queue)
  	S 中断/静止 sleeping
		D 不可中断 uninterruptible sleep (usually lO)  
		Z 僵死 a defunct ("zombie") process
		T 暂停 traced or stopped
		W	没有足够的内存分页可分配
		<	高优先序的行程 
		N	低优先序的行程
		L	有内存分页分配并锁在内存内(即时系统或hang I/O)
*START: 进程开始时间
TIME: 执行的时间
COMMND: 所执行的命令
# 根据内存使用降序排序
ps -aux -sort -pmem

# 根据内存降序、cpu升序
ps -aux -sort -pcpu,+pmem


# 树状显示进程,只要带有参数f即可
ps -axjf/-auxf
# 或者 
pstree

pidof

描述

pidof 是Linux 系统中用来查找正在运行进程的进程号(pid)的工具, pidof 命令用于查找指定名称的进程的进程号 ld号

语法

pidof [选项] [参数(进程名称)]

Usage:
 pidof [options] [program [...]]

Options:
 -s, --single-shot         return one PID only
 -c, --check-root          omit processes with different root
 -x                        also find shells running the named scripts
 -w, --with-workers        show kernel workers too
 -o, --omit-pid <PID,...>  omit processes with PID
 -S, --separator SEP       use SEP as separator put between PIDs
 -h, --help     display this help and exit
 -V, --version  output version information and exit

参数

-s 仅返回一个进程号
-c 仅显示具有相同"root"目录的进程
-x 显示由脚本开启的进程
-o 指定不显示的进程ID

例子

[root@node01 ~]# pidof dockerd
1047

参考

https://linux.cn/article-4743-1.html

文章来源:https://blog.csdn.net/qq_36803941/article/details/135462514
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。