linux pkill与kill区别,linux – pkill和killall有什么区别?

我知道pkill有比killall更多的过滤规则.我的问题是,有什么区别:

pkill [signal] name

killall [signal] name

我已经读过killall更有效并且杀死了与name程序匹配的所有进程和子进程(以及递归). pkill也不这样做?

解决方法:

pgrep和pkill实用程序是在Sun的Solaris 7中引入的,并且在g33klord noted中,它们采用模式作为参数,该模式与正在运行的进程的名称相匹配.虽然pgrep只打印一个匹配进程列表,但pkill会将指定的信号(或默认为SIGTERM)发送给进程. pgrep和pkill之间的常用选项和语义在您想要小心并首先使用pgrep查看列表匹配过程时会派上用场,然后继续用pkill杀死它们. pgrep和pkill由procps软件包提供,该软件包还提供其他/ proc文件系统实用程序,例如ps,top,free,uptime等.

killall命令由psmisc程序包提供,与pkill的不同之处在于,默认情况下,它在确定将发送信号的进程时与参数名称完全匹配(最多15个字符).可以指定-e, – exception选项,以便对长度超过15个字符的名称进行精确匹配.与pkill相比,这使得killall使用起来更安全一些.如果指定的参数包含斜杠(/)字符,则该参数将被解释为文件名,并且运行该特定文件的进程将被选为信号接收者. killall还通过-r,–regexp选项支持进程名称的正则表达式匹配.

还有其他差异.例如,killall命令具有按年龄匹配进程的选项(-o, – older-than和-y, – younger-than),而pkill可以被告知只杀死特定终端上的进程(通过-t)选项).显然,这两个命令具有特定的利基.

请注意,Unix System V(特别是Sun’s Solaris,IBM’s AIX和HP’s HP-UX)上的系统后代上的killall命令会杀死特定用户可以填充的所有进程,如果由root运行,则会有效地关闭系统.

Linux psmisc实用程序已移植到BSD(并在扩展Mac OS X中),因此killall遵循“按名称杀死进程”语义.

标签:linux,process,kill,process-management

来源: https://codeday.me/bug/20190808/1622819.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值