为了自动化系统管理任务,我写下了下面这行 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/

10-11 04:02