用一个stop脚本,里面有个pipeline,最后一步是kill,我一运行,把我所有的进程都杀了。
脱离语境大概就是运行下面这个命令。
ps aux | grep xxx | grep -v xxx | awk '{print $2}' | xargs kill -15
就是把一个空的参数传给了kill,看文档看了半天,kill不是要一个signal加一个pid才能用的嘛
最后只能找liye师兄
which kill 显示 /bin/kill
原来man kill显示的是sh shell的build-in的kill,实际用的是/bin/kill
运行
kill -l
和
sh -c "kill -l"
的结果不一样。
经过试验发现/bin/kill比较凶残,如果用null当pid会杀光能杀的所有进程(加个sudo竟然能TM关机。。。)
避免这个问题可以改-15 SIGTERM改-9 SIGKILL就好,或者把命令包一下
sh -c "commad to run"
有老司机带真好 感动 T.T