urz*_*eit 5 linux bash kill waitpid
如果我使用组合来批量杀死子进程并等待它终止,我使用
kill $PID wait $PID
如果该进程立即存在,则该进程wait将失败,因为 pid 不再运行。
wait
有没有办法将两个语句组合成一个语句来避免错误?
编辑:我必须杀死的进程使用临时文件;因此它必须关闭(而不仅仅是发出关闭信号)才能再次启动它。检查 的返回值kill无济于事,因为这表明信号是否已成功传递。
kill
bto*_*bto 8
它不是单行的,但是您是否愿意考虑在短暂的睡眠后产生杀戮,然后在主线程中等待?就像是:
(sleep 1; kill $PID) & wait $PID
这解决了您对杀死后 PID 被重用的担忧。即使您将其减少sleep到更小,它也会引入空闲时间,但它至少应该确保您wait处于正确的过程中。
sleep
归档时间:
10 年,7 月 前
查看次数:
4435 次
最近记录:
4 年,8 月 前