有时,当我尝试启动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')
似乎只已与执行过程中显示exec()
在PHP脚本本身(所以只能处理它展现的是自己。)
Answer 1:
pkill firefox
更多信息: http://linux.about.com/library/cmd/blcmdl1_pkill.htm
Answer 2:
也可以使用:
pkill -f "Process name"
。
对我来说,它的工作完美,这就是我一直在寻找。 在我的情况没有标志pkill的没有用名工作。
当-f
被设置时,完整的命令行用于模式匹配。
Answer 3:
您可以通过杀死名称以流程killall <name>
killall发送信号以运行任何指定的命令的所有进程。 如果没有指定信号名称,SIGTERM发送。
信号可以被指定或者通过域名(例如,四合成或-SIGHUP)或数目(例如-1),或者通过选项-s。
如果命令名称不是正则表达式(选项-r)和包含斜杠(/),流程执行该特定文件将被选择用于杀死,独立于它们的名字。
但是,如果你没有看到过程ps aux
,你可能不会有杀人的权利......
Answer 4:
长一点的选择:
kill `pidof firefox`
Answer 5:
做最简单的方法是首先检查你得到正确的进程ID有:
pgrep -f [part_of_a_command]
如果如预期的结果。 一起去的:
pkill -f [part_of_a_command]
Answer 6:
奇怪,但我还没有见过这样的解决方案:
kill -9 `pidof firefox`
它也可以杀死多个进程(多的PID),如:
kill -9 `pgrep firefox`
我喜欢pidof
因为它有一个线路输出:
> pgrep firefox
6316
6565
> pidof firefox
6565 6316
Answer 7:
在Mac上我找不到和pgrep和pkill命令也不是killall工作,所以写了一个简单的衬垫脚本: -
export pid=`ps | grep process_name | awk 'NR==1{print $1}' | cut -d' ' -f1`;kill $pid
如果有这样的一个简单的方法,那么请共享。
Answer 8:
使用#killall
命令:
#killall -9 <processname>
Answer 9:
杀死其所有进程snippet
中启动路径。 您可以通过把/目录/作为一个片断杀死一些目录开始所有的应用程序。 当你开始从同一应用程序目录下的同一个应用程序几部分组成,这是非常有用的。
ps ax | grep <snippet> | grep -v grep | awk '{print $1}' | xargs kill
*我会preffer p纤ep(如果可用)
Answer 10:
要使用grep杀:
kill -9 `pgrep myprocess`
Answer 11:
更正确的是:
export pid=`ps aux | grep process_name | awk 'NR==1{print $2}' | cut -d' ' -f1`;kill -9 $pid
Answer 12:
Answer 13:
我问自己同样的问题,但与目前的答案的问题是,他们没有安全检查的过程被如此被杀 ......这可能会导致可怕的错误:)......特别是如果几个进程的模式相匹配 。
作为一个声明,我不是一个SH亲和的肯定是有改进的余地。
所以我写了一个小sh脚本:
#!/bin/sh
killables=$(ps aux | grep $1 | grep -v mykill | grep -v grep)
if [ ! "${killables}" = "" ]
then
echo "You are going to kill some process:"
echo "${killables}"
else
echo "No process with the pattern $1 found."
return
fi
echo -n "Is it ok?(Y/N)"
read input
if [ "$input" = "Y" ]
then
for pid in $(echo "${killables}" | awk '{print $2}')
do
echo killing $pid "..."
kill $pid
echo $pid killed
done
fi
Answer 14:
默认kill
命令接受命令名称作为替代PID。 见杀(1) 。 一个经常出现的问题是, bash
提供了自己kill
它接受就业数字,像kill %1
,而不是命令名。 这阻碍了默认的命令。 如果是前者的功能是你比后者更加有用,您可以禁用bash
通过调用版本
enable -n kill
欲了解更多信息请参见kill
并enable
在项目的bash(1) 。
Answer 15:
如果您运行GNOME,您可以使用系统监视器(系统 - >管理 - >系统监视器)来杀死进程,你会在Windows下。 KDE将有类似的东西。
Answer 16:
ps aux | grep processname | cut -d' ' -f7 | xargs kill -9 $
Answer 17:
杀-9 $(的ps aux | grep的-e myprocessname | awk的 '{打印$ 2}')
文章来源: How can I kill a process by name instead of PID?