bash - 为已知 PID 的不同进程在 bash 中设置陷阱

标签 bash pid bash-trap

我需要为我在后台启动的 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/

相关文章:

linux - Bash 检查子进程是否发生错误(命令 &)

linux - sudo ./jetty 停止或启动失败

r - 使用 system() 时通过 R 捕获 pid 进程

shell - 在脚本和子 shell 中捕获信号

bash - 在 bash 中使用 trap 捕获已终止后台进程的 pid

bash - bash可以向终端输入写入命令吗?

linux - 如何在 Linux 中使用 lynx/w3m 提取多个 URL 的文本

linux - 我需要创建一个使用 cat 命令的动态文件名的脚本

linux - 使用 PID 文件杀死守护进程

linux - 为什么陷阱在管道中不起作用