我写了一个简单的守护程序。当我运行任何程序时,该守护程序都应响应。这个怎么做?在大守护程序循环中:
while(1) { /* function which catches new programm running */ }
当我运行新程序(创建新进程)时,在Linux中要调用什么函数?
我不知道是否存在更好的方法,但是您可以定期扫描/proc文件系统。
/proc
例如,/proc/<pid>/exe是到流程可执行文件的符号链接。
/proc/<pid>/exe
在我的系统(Ubuntu / RedHat)上,/proc/loadavg包含正在运行的进程数(正斜杠后的数字)以及最近启动的进程的pid。如果守护程序轮询文件,则对两个数字之一进行的任何更改都会告诉它何时需要重新扫描以/proc查找新进程。
/proc/loadavg
这绝不是防弹的,而是我能想到的最合适的机制。