用一个命令可以杀死所有查找进程吗?
我不想杀死每个进程,如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上都能正常工作,正是你所需要的:
pgrep -f 'find /etc' # verify the listing before proceeding pkill -9 -f 'find /etc'
在你的情况下,避免killall 。 如果你在Linux上使用它,迟早你会错过ssh会话,在Solaris上运行它,造成不必要的风险。
pgrep / pkill的-f选项意味着匹配整个命令行。 如果你需要匹配程序或脚本的path( /var/tmp/test.sh ),如果你已经运行了整个path,那么这个方法就行得通。 确切地说,你只需要逃避. 所以你需要
pkill -9 -f '/var/tmp/test\.sh'
如果你已经运行和./test.sh相同的程序,你需要像这样杀死它。 请参阅ps -f选项。
使用pkill find哪个是pgrep的变体( process grep )。 在Linux上, killall find也将工作。
是的,你可以使用killall命令
killall find