通过使用“ucbps”命令,我可以获得所有PID
$ ucbps
Userid PID CPU % Mem % FD Used Server Port
=========================================================================
512 5783 2.50 16.30 350 managed1_adrrtwls02 61001
512 8896 2.70 21.10 393 admin_adrrtwls02 61000
512 9053 2.70 17.10 351 managed2_adrrtwls02 61002
我想这样做,但不知道该怎么做
答案 0 :(得分:82)
如果你想基于一个字符串杀死-9(你可能想先尝试杀死),你可以这样做:
ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}'
这将显示你要杀死的东西(非常非常重要),并在执行时将其传递给sh
:
ps axf | grep <process name> | grep -v grep | awk '{print "kill -9 " $1}' | sh
答案 1 :(得分:65)
pids=$(pgrep <name>)
将为您提供具有给定名称的所有进程的pid。要全部杀死它们,请使用
kill -9 $pids
避免使用变量并直接终止具有给定名称问题的所有进程
pkill -9 <name>
答案 2 :(得分:20)
单行...
pgrep -f process_name | xargs kill -9
答案 3 :(得分:11)
另一种可能性是使用pidof
它通常与大多数发行版一起提供。它将使用它的名称返回给定进程的PID。
pidof process_name
这样您就可以将该信息存储在变量中并在其上执行kill -9
。
#!/bin/bash
pid=`pidof process_name`
kill -9 $pid
答案 4 :(得分:0)
使用grep [n] ame删除那个grep -v名称这是第一个......使用xargs的方式是怎么回事rnu无论是什么管道你必须使用-i(交互模式) )否则你可能会遇到命令问题。
ps axf | grep | grep -v grep | awk&#39; {print&#34; kill -9&#34; $ 1}&#39; ? ps aux | grep [n] ame | awk&#39; {print&#34; kill -9&#34; $ 2}&#39; ?不是更好吗?