【问题标题】:Programmatically monitor process state using C++使用 C++ 以编程方式监视进程状态
【发布时间】:2015-04-17 14:35:37
【问题描述】:

我必须用 C++ 开发一个应用程序来监视我的 Linux 系统中进程的状态,并且还需要知道是否创建了新进程或终止了现有进程。有可用的 API 吗?如果有人能告诉我如何开始它也会很有帮助。

【问题讨论】:

  • 您是在谈论监视所有 Linux 进程,还是监视您创建的某些特定进程(例如,拥有控制权)?有很多这样的程序都有这个功能(procer 的一部分,mongrel2systemd。但是你最好看看类似supervisord 或使用 Python 的psutil 制作原型,然后作品将其翻译成 C++(如果你真的需要的话)。
  • 我需要监控所有进程..
  • ls /proc 应该可以解决问题。可能还有其他更老的方法,但这就是我要做的。
  • 有或没有root权限?
  • @Gilles:具有root访问权限..

标签: linux process c++


【解决方案1】:

inotify 适用于我尝试过的所有目录proc 文件系统除外。所以我再次继续寻找解决方案,我到达的地方是 proc connectorsocket filters。没有太多的记录,但真的很值得。看看吧:

http://netsplit.com/the-proc-connector-and-socket-filters

得出这个结论的方法是通过David Crookes提供的答案 Detect launching of programs on Linux platform.

希望它对将来的人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2014-07-16
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多