Linux - 处理进程终止



我需要监视Linux中具有已知PID的进程。一旦它被终止,想要执行一个带有终止原因的命令。

问题

  1. 如何订阅进程运行状况而不是轮询(例如观看命令)?
  2. 操作系统的用户空间中在哪里注入事件处理程序?
  3. 如何检测处理程序内部的终止/失败原因?

注意

  • 我打算保持选项卡的进程没有分叉为某个父进程的子进程,通过它可以被监视。
  • 进程类型是通用的(其中很多是守护程序)

获得对另一个进程的这种控制的唯一方法是使用 ptrace(2) 来跟踪目标进程。 您将使用 ptrace(PTRACE_ATTACH, pid) 附加到进程,之后您实际上成为目标进程的父进程(并且可以使用wait或更多次ptrace调用来确定进程正在做什么)。

最新更新