使用 Inotify 和/或 epoll 监控进程终止,可能使用 /proc/<pid> 目录

问题描述 投票:0回答:0

有一个问题,如果另一个不相关的进程终止,我们希望能够在一个进程中接收事件。第一个进程发送第二个进程的 pid。第一个进程根据与第二个进程相关的资源分配资源。如果第二个进程正常终止,它会在退出前通知第一个进程。如果崩溃,需要通知第一个进程。最初尝试对 /proc/ 目录中的文件使用 epoll()。 epoll 打不开目录。然后尝试 Inotify() 但这显然只适用于用户进程定义的文件和目录。 然后考虑让第二个进程创建一个临时文件并在进程终止时将其删除,但是崩溃(或 kill -9)不会清理临时文件。
我知道等待子进程,但这不是父子进程关系。 必须有一些方法才能做到这一点。 希望这是事件驱动的,而不是定期检查 /proc 目录是否存在 /proc/ 子目录。

在 python 中尝试过 NamedTemporaryFile(),但文件在进程终止后仍然存在。 已在 /proc/ 目录中的文件上尝试过 epoll(),epoll() 不会返回错误。即使只有 EPOLLHUP 和 EPOLLRDHUP 标志,可以打开的那些也会生成很多事件。可能 epoll() 不是正确的 API。 还没有尝试过 Inotify,但它不应该监视系统文件和目录。 想法?

linux temporary-files
© www.soinside.com 2019 - 2024. All rights reserved.