mre*_*req 32 bash process kill
有没有办法(也许是脚本)如何自动化这个过程:
petr@sova:~$ ps -ef | grep middleman
petr 18445 2312 1 12:06 pts/2 00:00:01 /home/petr/.rvm/gems/ruby-1.9.3-p362/bin/middleman
petr 18581 13621 0 12:08 pts/0 00:00:00 grep --color=auto middleman
petr@sova:~$ kill -9 18445
Run Code Online (Sandbox Code Playgroud)
不幸的是,pkill太弱了,因为我必须-9选择 on kill。
Ger*_*ger 56
有一个比 qbi 更简单的解决方案:killall让我们按名称杀死进程,并且可以指定信号。
killall -9 middleman
Run Code Online (Sandbox Code Playgroud)
有关man killall更多信息和额外选项(有很多),请参见。
顾名思义,这确实将信号发送到所有名为middleman. 但这与其他方式(如pkill)并没有什么不同。此外,pkill -9 middleman将针对名称匹配但不等于的进程middleman,例如middleman2,以及。
qbi*_*qbi 38
您可以使用 shell 为您完成此任务:
kill -9 $(pidof middleman)
Run Code Online (Sandbox Code Playgroud)
shellpidof middleman首先执行命令。pidof(8)的输出是进程 ID。因此,shell 将pidof-command 替换为进程 id 并执行kill -9 18845(或任何正确的进程 id)。
Rob*_*sak 16
其他答案完全正确,但我不妨添加第三个选项,以便在此处记录所有内容。您还可以使用:
pkill -9 middleman
Run Code Online (Sandbox Code Playgroud)
有关man pkill更多信息和额外选项,请参阅。
您使用这些方法中的哪一种并不重要。他们都会工作。但是如果您想以某种方式修改行为,了解这些选项是否有用,因为相应的手册页显示了其他可用的匹配选项。
小智 13
只是为了好玩,我想添加一个更手动的老派方式
kill -9 `ps aux | grep middleman | awk '{print $2}'`
Run Code Online (Sandbox Code Playgroud)
jll*_*gre 13
pkill -9 -f middleman
Run Code Online (Sandbox Code Playgroud)
该-f选项使其匹配完整的命令行,而不仅仅是进程名称。
请注意,这-9应该是最后的信号,而不是常规使用的信号。
| 归档时间: |
|
| 查看次数: |
93446 次 |
| 最近记录: |