为了自动执行系统管理任务,我写下了以下一行shell代码:
bash -c 'pkill -TERM -f java; true'
问题是pkill在执行pkill
命令后立即杀死bash,因此后续命令没有机会执行。
除了将它们分成两行:
bash -c 'pkill -TERM -f java'
bash -c 'true'
还有其他解决方法吗?
答案 0 :(得分:2)
如果要杀死所有java进程,只需删除-f
:
bash -c 'pkill -TERM java; true'
如果你真的想要杀死像mplayer "jungle_gremlins_of_java.avi"
这样的非java进程,典型的“解决方案”是重写命令,使模式与自身不匹配:
bash -c 'pkill -TERM -f "[j]ava"; true'