【发布时间】:2014-03-11 15:37:45
【问题描述】:
为了自动执行系统管理任务,我写下了下面这行 shell 代码:
bash -c 'pkill -TERM -f java; true'
问题是 pkill 在 pkill 命令执行后立即杀死 bash,因此后续命令没有机会执行。
除了将它们分成两行之外:
bash -c 'pkill -TERM -f java'
bash -c 'true'
还有其他解决方法吗?
【问题讨论】:
-
无法重现:
sleep 60 & bash -c 'pkill -TERM -f sleep; echo true'杀死sleep但仍将“true”打印到终端。不过,grep有时使用的技巧可能会有所帮助:bash -c 'pkill -TERM -f \java; true'。 -
@chepner 这个问题不能在osx中重现,你应该可以在linux中重现。
标签: linux bash shell unix process