如何通过指定进程名称获取进程的PID并将其存储在变量中以进一步使用?

时间:2013-07-03 05:47:45

标签: unix process pid

通过使用“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. variable =按进程名获取进程的pid。
  2. 然后使用此命令kill -9 variable。

5 个答案:

答案 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; ?不是更好吗?

相关问题