如何通过指定进程名称来获得进程的PID,并将其存储在variables中以便进一步使用?

通过使用“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. variables=通过进程名得到进程的PID。
  2. 然后使用这个命令kill -9variables。

如果你想杀死-9基于一个string(你可能想先尝试杀死),你可以做这样的事情:

 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 
 pids=$(pgrep <name>) 

将会给你带有给定名字的所有进程的pid。 杀死他们,使用

 kill -9 $pids 

避免使用一个variables,并直接杀死具有给定名称问题的所有进程

 pkill -9 <name> 

在一条线上…

 pgrep -f process_name | xargs kill -9 

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

 pidof process_name 

这样你可以将这些信息存储在一个variables中,并执行kill -9

 #!/bin/bash pid=`pidof process_name` kill -9 $pid