为了自动化系统管理任务,我写下了下面这行 shell 代码:
bash -c 'pkill -TERM -f java; true'
问题是 pkill 在
pkill
命令执行后立即杀死 bash,因此后续命令没有机会执行。除了将它们分成两行:
bash -c 'pkill -TERM -f java'
bash -c 'true'
还有其他解决方法吗?
最佳答案
如果要终止所有 java 进程,只需删除 -f
:
bash -c 'pkill -TERM java; true'
如果您真的还想杀死像
mplayer "jungle_gremlins_of_java.avi"
这样的非 Java 进程,典型的“解决方案”是重写命令,使模式与自身不匹配:bash -c 'pkill -TERM -f "[j]ava"; true'
关于linux - 调用shell执行一串命令时如何运行pkill?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22330244/