是否可以用一个命令杀死所有查找进程?
我不想杀死每个进程kill -9 25295
,kill -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 上工作,并精确地做你需要的:
在你的情况下,避免
killall
. 如果您在 Linux 上使用它,迟早您会误认为 ssh 会话,在 Solaris 上运行它,从而造成不必要的风险。pgrep/pkill的
-f
选项表示匹配整个命令行。如果您需要匹配程序或脚本的路径 (/var/tmp/test.sh
),如果您使用整个路径运行它,这将起作用。准确的说,你只需要转义,.
所以你需要pkill -9 -f '/var/tmp/test\.sh'
如果您运行了相同的程序,
./test.sh
则需要将其杀死。请参阅-f
中的选项ps
。使用
pkill find
which 是pgrep
(process grep
) 的变体。在 Linux 上,killall find
也可以。是的,你可以使用 killall 命令