60

通过使用“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

我想这样做,但不知道该怎么做

  1. 变量=通过进程名获取进程的 pid。
  2. 然后使用这个命令杀死 -9 变量。
4

5 回答 5

99

如果您想根据字符串杀死 -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
于 2013-07-03T05:52:16.397 回答
78
pids=$(pgrep <name>)

将为您提供具有给定名称的所有进程的 pid。要杀死它们,请使用

kill -9 $pids

避免使用变量并直接杀死具有给定名称的所有进程问题

pkill -9 <name>
于 2013-07-03T05:55:41.403 回答
29

在单行...

pgrep -f process_name | xargs kill -9
于 2016-03-26T17:25:19.017 回答
16

另一种可能性是使用pidof它通常随大多数发行版一起提供。它将使用给定进程的名称返回给定进程的 PID。

pidof process_name

这样,您可以将该信息存储在变量中并kill -9在其上执行。

#!/bin/bash
pid=`pidof process_name`
kill -9 $pid
于 2014-06-13T09:54:23.553 回答
0

使用 grep [n]ame 删除 grep -v 名称,这是第一个... Sec 以 xargs 的方式使用它是错误的 rnu 无论它是通过管道传输的,你必须使用 -i (交互模式)否则你命令可能有问题。

ps axf | grep | grep -v grep | awk '{print "kill -9" $1}' ?ps aux |grep [n]name | awk '{print "kill -9" $2}' ?那不是更好吗?

于 2017-12-20T10:07:43.877 回答