我需要为我在后台启动的 bash 进程设置一个陷阱。后台进程可能会运行很长时间,并将其 PID 保存在特定文件中。
现在我需要为那个进程设置一个陷阱,所以如果它终止,PID 文件将被删除。
有什么办法可以做到吗?
编辑 #1
看来我对问题的描述不够准确。我可以完全控制所有代码,但我拥有的长时间运行的后台进程是这样的:
cat /dev/random >> myfile&
当我现在在该语句所在的脚本开头添加陷阱时,$$
将是那个更大脚本的 PID,而不是我从这里开始的这个小后台进程的 PID。
那么我该如何专门为那个后台进程设置陷阱呢?
最佳答案
(./jobsworthy& echo $! > $pidfile; wait; rm -f $pidfile)&
disown
关于bash - 为已知 PID 的不同进程在 bash 中设置陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5214524/