我试图找出一种方式来获取通知时,我的一个进程开始再次运行(我曾尝试监视proc文件,但没有成功,monit不处理得到相同的PID并定期运行)。 有任何想法吗?
在我看来, 你使用Monit的第一个想法是最好的方法,并且是更强大的。
我曾尝试监视proc文件,但没有成功
告诉我们你卡在哪里,我们可以帮忙。 Monit完全可以做到这一点。 也许你有一个configuration错误的Monit的地方。
monit不处理获得相同的pid
对,但是你不应该为此担心。 Linux系统pipe理进程的方式,你永远不会得到像以前一样的PID。
和(Monit)定期运行
对。 Monit的默认轮询间隔为120秒。 如果此function不适合您,则可以通过在config文件中更改set daemon n (where n is a number in seconds - default 120)
参数的值来减less轮询间隔。
也许是完全不同的东西 一个简单的包装。
写一个放在原来的二进制位置的bash脚本
#!/bin/bash # put here commands to notify You # optional commands to redirect fd to original processs if needed exec /path/to/original/binary
你的问题没有太多的细节,你所期望的是什么,但这会做这项工作。
您可以通过Netlink获得与进程相关的内核事件的通知。 请参阅此处的示例代码。
你可以编写一个程序来获取进程列表并parsing这个列表并检测新的进程。 然后添加一个“http xml值传感器”到您的监测软件(cacti,…)并检查您的程序结果。
http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/