0%

Linux的 pgrep/pkill 命令

pgrep/pkill 检索终止当前正在运行的程序

鉴于用man pgrepman pkill的时候出来的同一个释义,所以要一次说两个命令了。

Linux pgreppkill 命令根据名称和其他属性来查找或发送处理的信号。

官方定义为:

pgrep, pkill - look up or signal processes based on name and other attributes

pgrep将查找当前运行的进程中满足条件的并打印到stdout中。

语法

语法如下所示:

1
2
$ pgrep [options] pattern
$ pkill [options] pattern

常用的参数为:

  • -u 选择仅匹配指定有效用户ID进程
  • -I 列出进程名及进程ID
  • -a 列出进程的详细命令行

默认无参数

默认情况下,仅仅列出包含关键词的进程ID。

1
2
3
4
5
6
7
8
9
$ pgrep ssh
3073
3833
4475
5786
5955
11301
13654
...

pkill刚好相反,直接发送终止信号(默认为SIGTERM)给这些进程。

指定用户

可以通过-u来指定用户

1
2
3
4
5
$ pgrep ssh -u username
4475
22084
27695
...

列出进程名

仅仅看到ID是崩溃的,因为不知道具体的进程,可以通过-l来查看进程名

1
2
3
4
5
6
7
8
$ pgrep ssh -l
3073 sshd
3833 ssh-agent
4475 ssh-agent
5786 ssh-agent
5955 sshd
...

更详细的进程信息

或许知道的进程名,还不足以了解具体信息,此时-a选项就爬上用场了。

1
2
3
4
5
6
$ pgrep ssh -a
3073 /usr/sbin/sshd -D
3833 /usr/bin/ssh-agent /etc/X11/xinit/Xclients
5955 sshd: /usr/sbin/sshd -D -f /assets/sshd_config -e [listener] 0 of 100-200 startups
...

处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道