当前位置:  开发笔记 > 编程语言 > 正文

如何通过名称而不是PID来终止进程?

如何解决《如何通过名称而不是PID来终止进程?》经验,为你挑选了11个好方法。

例如,有时当我尝试启动Firefox时,它表示Firefox进程已在运行.所以我必须这样做:

jeremy@jeremy-desktop:~$ ps aux | grep firefox
jeremy    7451 25.0 27.4 170536 65680 ?        Sl   22:39   1:18 /usr/lib/firefox-3.0.1/firefox
jeremy    7578  0.0  0.3   3004   768 pts/0    S+   22:44   0:00 grep firefox
jeremy@jeremy-desktop:~$ kill 7451

我想要的是一个可以为我做这一切的命令.它将在进程列表中为它(或其他)获取输入字符串和grep,并将终止输出中的所有进程:

jeremy@jeremy-desktop:~$ killbyname firefox

我尝试在PHP中执行它但exec('ps aux')似乎只显示在PHP脚本本身中使用exec()执行的进程(因此它显示的唯一进程本身.)



1> shoosh..:
pkill firefox

更多信息:http://linux.about.com/library/cmd/blcmdl1_pkill.htm


在你去杀戮过程之前使用pgrep找出你所杀的东西是一件好事.特别是在使用`-f`时.
强行杀死:pkill -9 firefox
`pkill -U <用户名>`非常方便.我有一个**Solaris**Web服务器,实际的Web服务器守护程序,它是自己的用户设置为*Service*.因此,用户指定是触发重启的简单/简单方法.

2> Victor..:

也可以使用:

pkill -f "Process name".

对我而言,它完美无缺,这正是我所寻求的.在我的情况下没有标志pkill没有使用名称.

-f被设置时,完整的命令行用于模式匹配.


特别是用于运行*wine*的东西,确实需要`-f`选项.例如`pkill -f"EvilWindowsServer.exe"`

3> Andre Bossar..:

您可以通过杀死进程名称killall

killall向运行任何指定命令的所有进程发送信号.如果未指定信号名称,则发送SIGTERM.

可以通过名称(例如-HUP-SIGHUP)或数字(例如 -1)或选项-s指定信号.

如果命令名称不是正则表达式(选项-r)并且包含斜杠(/),则将选择执行该特定文件的进程进行查杀,而与其名称无关.

但如果你没有看到这个过程ps aux,你可能没有权利杀死它......


要强制终止没有响应的程序,请发送KILL而不是TERM:`killall -s KILL firefox`

4> Walter..:

更长的选择:

kill `pidof firefox`


pidof firefox | xargs kill -9
@hbt你的是唯一为我工作的人!

5> Tahsin Turko..:

最简单的方法是首先检查您是否获得了正确的进程ID:

pgrep -f [part_of_a_command]

如果结果符合预期.跟着:

pkill -f [part_of_a_command]



6> prosti..:

奇怪,但我还没有看到这样的解决方案:

kill -9 `pidof firefox`

它还可以杀死多个进程(多个pid),如:

kill -9 `pgrep firefox`

我更喜欢,pidof因为它有单行输出:

> pgrep firefox
6316
6565
> pidof firefox
6565 6316



7> Dhiraj..:

在Mac上我找不到pgrep和pkill也不是killall工作所以写了一个简单的一个班轮脚本: -

export pid=`ps | grep process_name | awk 'NR==1{print $1}' | cut -d' ' -f1`;kill $pid

如果有更简单的方法,请分享.



8> Mykhaylo Ada..:

杀死snippet启动路径中的所有进程。您可以通过将/ directory /作为摘要杀死从某个目录启动的所有应用。当您从同一应用程序目录中为同一应用程序启动多个组件时,这非常有用。

ps ax | grep  | grep -v grep | awk '{print $1}' | xargs kill

*如果可以的话,我会推荐pgrep



9> 小智..:

使用#killall命令:

#killall -9 



10> edW..:

用grep杀死:

kill -9 `pgrep myprocess`



11> 小智..:

更正确的是:

export pid=`ps aux | grep process_name | awk 'NR==1{print $2}' | cut -d' ' -f1`;kill -9 $pid

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有