可以按照进程名杀死进程,pkill命令 可以按照进程名杀死进程。pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。
命令语法
pkill [选项] [参数]
命令选项
- -o:仅向找到的最小(起始)进程号发送信号;
- -n:仅向找到的最大(结束)进程号发送信号;
- -P:指定父进程号发送信号;
- -g:指定进程组;
- -t:指定开启进程的终端。
命令参数
进程名称:指定要查找的进程名称,同时也支持类似grep指令中的匹配模式。
最常被使用的信号是:
使用
kill -l
命令列出所有可用的信号。
- 1(HUP):重新加载进程
- 9 (KILL): 杀死进程
- 15(TERM):完美地停止一个进程
信号可以通过三种不同的方式来指定:
- 使用一个信号序号(例如:-1)
- 使用 “SIG” 前缀 (例如:-SIGHUP)
- 不使用 “SIG” 前缀 (例如:-HUP)
重新加载 Nginx 进程,你需要运行:
代码语言:javascript复制> pkill -HUP nginx
代码语言:javascript复制
pkill
使用正则表达式来匹配进程名称。这是一个好办法,在发送信号之前,先使用pgrep
命令来打印匹配进程。例如,列出所有名称中包含ssh
的进程:
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
如果你想依照名字准确匹配进程,并发送信号给它:
代码语言:javascript复制> pkill '^ssh$'
代码语言:javascript复制> 符号^代表字符串开头,字符串$代表字符串结尾
代码语言:javascript复制默认情况下,
pkill
仅仅匹配进程名称。如果使用-f
选项,这个命令将会匹配所有参数列表。如果命令中包含空格,将整个命令用引号括起来:
> pkill -9 -f "ping 8.8.8.8"
使用-u
选项告诉pkill
仅仅匹配给出用户所运行的进程。
代码语言:javascript复制> pkill -u rumenz
想要指定多个用户,在多个用户名之间添加逗号:
代码语言:javascript复制> pkill -u rumenz,danny
代码语言:javascript复制你可以混合使用选项和搜索样式。例如,发送
KILL
信号给所有由 "mark" 用户运行的,并且进程名包含 "gnome" 的所有进程,你需要输入:
> pkill -9 -u rumenz gnome
代码语言:javascript复制想要显示最老的或者最新的进程,使用
-n
或者-o
选项。例如,想要杀死最近启动的 screen:
> pkill -9 -n screen