Linux

linux/solaris 用一個命令殺死許多程序

  • November 25, 2012

是否可以用一個命令殺死所有查找程序?

我不想殺死每個程序kill -9 25295kill -9 11994等等。相反,我想要的是一種簡單的方法或命令來殺死所有查找程序(我的目標是在 linux 和 solaris 機器上執行此操作)。

$ ps -ef | grep find 
root 25295 25290   0 08:59:59 pts/1 0:01 find /etc -type f -exec grep -l 100.106.23.152 {} ; -print
root 11994 26144   0 09:04:18 pts/1 0:00 find /etc -type f -exec grep -l 100.106.23.153 {} ; -print
root 25366 25356   0 08:59:59 pts/1 0:01 find /etc -type f -exec grep -l 100.106.23.154 {} ; -print
root 26703 26658   0 09:00:05 pts/1 0:01 find /etc -type f -exec grep -l 100.106.23.155 {} ; -print

這將在 Linux 和 Solaris 上執行,並且可以滿足您的需要:

pgrep -f 'find /etc'     # verify the listing before proceeding
pkill -9 -f 'find /etc'

在您的情況下,避免killall. 如果你在 Linux 上使用它,遲早你會弄錯 ssh 會話,在 Solaris 上執行它,造成不必要的風險。

pgrep/pkill 選項的-f意思是匹配整個命令行。如果您需要匹配程序或腳本 ( /var/tmp/test.sh) 的路徑,如果您使用整個路徑執行它,這將有效。準確地說,你只需要逃跑.所以你需要

pkill -9 -f '/var/tmp/test\.sh'

如果您執行了相同的程序,./test.sh則需要將其殺死。請參閱-f中的選項ps

引用自:https://serverfault.com/questions/451950