当进程开始运行时收到通知

当进程开始运行时收到通知

我正在尝试找出一种方法,当我的某个进程再次开始运行时获取通知(我曾尝试监视 proc 文件但没有成功,monit 无法处理获取相同的 pid 并定期运行)。有什么想法吗?

答案1

在我看来,你的第一个想法关于使用 Monit 是最好的方法并且更为强大。

我尝试监控 proc 文件,但没有成功

告诉我们您遇到的问题,我们可以提供帮助。Monit 完全可以做到这一点。也许您的 Monit 配置存在错误。

monit 无法处理获取相同的 pid

是的,但你不必为此担心。Linux 系统管理进程的方式是,你永远不会得到与前一个相同的 PID。

并且(Monit)定期运行

是的。Monit 默认的轮询间隔为 120 秒。如果这个延迟不适合您,您可以通过更改set daemon n (where n is a number in seconds - default 120)配置文件中的参数值来减少轮询间隔。

答案2

也许是完全不同的东西。一个简单的包装。

编写一个 bash 脚本并将其放置在原始二进制文件的位置

#!/bin/bash

# put here commands to notify You
# optional commands to redirect fd to original processs if needed

exec /path/to/original/binary

您的问题没有详细说明您到底期望什么,但这可以完成工作。

答案3

您可以通过 Netlink 收到与进程相关的内核事件的通知。看这里例如代码。

答案4

您可以编写一个程序来获取进程列表并解析该列表并检测新进程。然后将“http xml 值传感器”添加到您的监控软件(cacti,...)并检查您的程序结果。

http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/

相关内容