mav*_*lan 73 linux process kill process-management
我知道它pkill
比killall
. 我的问题是,有什么区别:
pkill [signal] name
Run Code Online (Sandbox Code Playgroud)
和
killall [signal] name
Run Code Online (Sandbox Code Playgroud)
我读过它killall
更有效并杀死与name
程序匹配的所有进程和子进程(以及递归)。 pkill
也不这样做吗?
Tho*_*man 63
在pgrep
和pkill
公用事业Sun的Solaris 7进行了介绍,并为g33klord指出,他们采取的模式作为其对正在运行的进程的名称相匹配的说法。虽然pgrep
仅打印匹配进程的列表,但pkill
会将指定的信号(或SIGTERM
默认情况下)发送到进程。常用选项之间的语义pgrep
和pkill
派上用场的时候,你要小心,并首先回顾与列表匹配过程pgrep
,然后继续与杀害他们pkill
。pgrep
和pkill
由所提供的procps的包,其中还提供了其它/proc
的文件系统实用程序,例如ps
,top
,free
,uptime
等等。
该killall
命令由psmisc包提供,不同之处pkill
在于,默认情况下,它在确定将发送信号的进程时与参数名称完全匹配(最多前 15 个字符)。的-e
,--exact
可以指定选项,还需要精确匹配的姓名超过15个字符。这使得killall
有些更安全比使用pkill
。如果指定的参数包含斜杠 ( /
) 字符,则该参数将被解释为文件名,并且运行该特定文件的进程将被选为信号接收者。killall
还通过-r
,--regexp
选项支持进程名称的正则表达式匹配。
还有其他差异。killall
例如,该命令具有用于按年龄匹配进程的选项(-o
,--older-than
和-y
, --younger-than
),而pkill
可以被告知仅终止特定终端上的进程(通过-t
选项)。很明显,这两个命令有特定的利基。
请注意,killall
在系统命令从后代的Unix System V的(尤其是Sun的Solaris,IBM的AIX和HP的HP-UX)杀死所有过程由特定用户killable,如果root身份运行有效地关闭系统。
Linux psmisc 实用程序已移植到BSD(并在扩展Mac OS X 中),因此killall
遵循“按名称杀死进程”语义。
Gab*_*iel 16
pkill
是值得教给后代的一个,因为您提到的过滤器以及它与高度可重用的pgrep
. 它们以相同的方式终止进程,并且都不会递归终止——尽管使用pgrep
,您可以通过会话(per-tty,认为 setsid)或进程组(认为作业控制)进行选择。
归档时间: |
|
查看次数: |
33615 次 |
最近记录: |