欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
改进9――pkill:
看到pkill想到了什么?没错pgrep和kill!pkill=pgrep+kill。
[plain] view plaincopy $pkill -9 firefox
说明:”-9″ 即发送的信号是9,pkill与kill在这点的差别是:pkill的信号直接跟在 “-“ 后面,“-sxx”不是用来传递信号。之前我一直以为是 “-s 9″,结果每次运行都无法终止进程。
改进10――killall:
killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。
[plain] view plaincopy $killall -9 firefox
总结:
1、
1)kill传递给要终止的进程的信号,实际上是POSIX信号,它们在signal.h里面定义附录摘录了部分POSIX信号,及其相关说明。支持两种方式传递终止信号:
[plain] view plaincopy (1)kill -s signal PID
比如
$ kill -s 9 1234
(2)kill -signal PID
$kill -9 1234
2)kill传递的信号也支持两种表示方式:信号名和信号数:
kill -s 9 1234 和kill -s KILL 1234 (SIGKILL)
kill -15 1234 和kill -TERM 1234 (SIGTERM)
当然其他信号也可以这样表示。
2、
上面各种改进方法,设计到的技巧,有两个在其他地方也有借鉴意义。
1)、进程号的获取部分
用awk提取第2列或者用cut提取第8-15个字母。其他地方也可一用awk提取第n列,或者用cut提取第m-第n哥字母。
2)、进程号的传递
用xargs把进程号传递给后面的kill做参数运行;
直接用两个“`”(“~”下面那个后单引号)把命令放到对应参数的位置来传递参数。
附录:各种信号及其用途
[1][2]
功夫不负有心人。