杀死进程在目录中运行(递归)

时间:2013-09-16 11:03:24

标签: linux bash debian sh

是否可以终止在一个目录中运行的所有进程?流程具有相同的用户 例如(运行流程):

/bin/1/a/p1  
/bin/1/b/p2  
/bin/2/a/p3  

我希望从/bin/1//bin/1/a/p1/bin/1/b/p2)中删除所有进程。

2 个答案:

答案 0 :(得分:3)

你可以说:

ps aw | awk '/\/bin\/1\// {print $1}' | xargs kill -9

编辑:为了确保这不会像commented那样杀死任何意外的命令,你可以说:

ps aw o pid,command | awk '$2 ~ /^\/bin\/1\// {print $1}' | xargs kill -9

答案 1 :(得分:1)

ps -A -o cmd,pid --no-headers | sed  -n '/^\/bin/{ s/^.*  //; s/ //g; p; }' | xargs kill -s SIGSPEC

-s SIGSPEC是可选的,SIGSPEC可以是

 1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP
 6) SIGABRT      7) SIGBUS       8) SIGFPE       9) SIGKILL     10) SIGUSR1
11) SIGSEGV     12) SIGUSR2     13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD     18) SIGCONT     19) SIGSTOP     20) SIGTSTP
21) SIGTTIN     22) SIGTTOU     23) SIGURG      24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGIO       30) SIGPWR
31) SIGSYS

通常它是SIGHUP,SIGABRT,SIGTERM和SIGKILL。至少使用SIGKILL。默认情况下,它是SIGTERM。