
Linux Pkill命令搜索进程并kill进程
pkill是一个命令行程序,用于与正则表达式匹配的进程发送信号
pkill是一个命令行程序,用于与正则表达式匹配的进程发送信号。可以通过进程的全名或部分名,运行进程的用户或其他属性来指定进程。
本教程介绍Linux pkill命令的基础。pkill命令是procps或procps-ng软件包的一部分。
几乎所有Linux发行版都已预安装pkill命令。 pkill是pgrep命令的再次封装,但pgrep仅打印匹配进程的列表。
pkill命令选项
pkill命令的语法是pkill [OPTIONS] <PATTERN>。<PATTERN>使用的是扩展的正则表达。
在不带任何选项运行pkill命令时,pkill将终止信号发送给与指定正则表达式匹配的进程PID。例如,要正常停止所有Firefox进程,可以运行命令pkill -9 firefox。
当至少一个正在运行的进程与正则表达式匹配时,pkill命令退出代码返回0。 否则,退出代码为1。 这在编写shell脚本时很有用。
pkill -9 firefox进程信号 signal
要将不同的信号发送到正则表达式匹配的进程,请使用--signal选项运行pkill命令,后跟信号数字。
发送信号的另一种方法是运行pkill,后跟信号名称或以连字符-开头的数字。使用kill -l命令列出所有可用信号。
最常用的信号是包括1/HUP重新加载进程。9/KILL杀死进程。15/TERM正常停止进程。
可以用三种不同的方式指定信号,第一种是使用带SIG前缀的数字,例如-1。第二种不带SIG前缀,例如-HUP。
假设你需要重新加载Nginx 进程,可以运行命令pkill -HUP nginx。
pkill -HUP nginxpkill使用正则表达式来匹配进程名称。在将信号发送给它们之前,最好先使用pgrep命令打印匹配的进程。
例如,列出所有包含ssh的进程,如果您只想向名称与搜索模式完全相同的进程发送信号,则可以运行命令pkill '^ssh$'。
^ 符号表示匹配行首,而美元$则匹配行尾。^ssh$表示完整匹配ssh。
pgrep '^ssh$'
pkill '^ssh$'1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
搜索进程
默认情况下,pkill仅与进程名称匹配。当使用-f选项时,pkill命令将会匹配进程启动参数列表。
如果pkill命令中包含空格,请用引号将整个命令括起来。例如命令pkill -9 -f "ping 8.8.8.8"。
除了可以匹配进程名称和进程启动参数之外,还可以使用-u选项匹配指定用户运行的进程,要指定多个用户,请用逗号分隔其名称。
pkill -9 -f "ping 8.8.8.8"
pkill -u mark
pkill -u mark,danny您还可以组合选项和搜索模式。例如要发送KILL信号给gnome和mark用户启动进程,则可以没命令pkill -9 -u mark gnome。
要仅显示最远(最旧)或最近(最新)启动的进程,请使用-n(代表最新)或-o(代表最老)选项。
例如命令pkill -9 -n screen,将会kill掉最近创建的screen进程。
pkill -9 -u mark gnome
pkill -9 -n screen结论
pkill命令用于与正则表达式匹配的进程发送信号。有关pkill命令的更多信息,请访问pkill man页面或在终端中输入man pkill。
如果您有任何问题或反馈,请随时发表评论。












