当前位置: 首页 > 面试题库 >

如何检测Linux上程序的启动?

庄嘉
2023-03-14
问题内容

我写了一个简单的守护程序。当我运行任何程序时,该守护程序都应响应。这个怎么做?在大守护程序循环中:

while(1)
{
   /* function which catches new programm running */
}

当我运行新程序(创建新进程)时,在Linux中要调用什么函数?


问题答案:

我不知道是否存在更好的方法,但是您可以定期扫描/proc文件系统。

例如,/proc/<pid>/exe是到流程可执行文件的符号链接。

在我的系统(Ubuntu /
RedHat)上,/proc/loadavg包含正在运行的进程数(正斜杠后的数字)以及最近启动的进程的pid。如果守护程序轮询文件,则对两个数字之一进行的任何更改都会告诉它何时需要重新扫描以/proc查找新进程。

这绝不是防弹的,而是我能想到的最合适的机制。



 类似资料:
  • 问题内容: 我正在尝试在我的c程序中检测从Linux关闭或重新启动。我发现程序可以使用signal(SIGTERM,handler)(SIGKILL,handler)。但是,如果用户也使用命令杀死该进程,这两个触发器也会触发。 他们说,在某些解决方案中,可以使用运行级别,但无法运行。在系统初始化运行级别之前,不知道该进程是否被杀死。我什至尝试将脚本放在rcx.d中,但仍然无法正常工作。 有人建议吗

  • 我正在尝试自动化电子邮件注册。当我手动操作时,它会工作,但当我用selenium打开网站时,它不会工作。它有我不能做的验证。有没有一种方法可以在不被检测的情况下打开(而不是控制,我使用pyautogui)一个网站? 我的代码:

  • 问题内容: 在我的项目中,我具有文件上传功能。文件通过FTP上传。我需要配置一个侦听器,该侦听器将检查新文件并仅在文件上传完成后才调用脚本。因为如果我在检测到新文件后立即运行此脚本,它将开始处理未完全上载的文件,这将导致错误。谁能说出这在LINUX上是否可行,我该怎么做? 问题答案: 我会尝试使用inotify,事件代码为IN_CLOSE_WRITE。

  • 问题内容: 我正在研究需要检测系统关闭的应用程序。但是,我没有找到任何可靠的方式来接收此事件的通知。 我知道在关机时,我的应用会收到一个信号,然后是。我想知道是否有任何方法可以查询a 是否 为关机序列的一部分 ? 有谁知道是否有一种以编程方式查询(C API)的方法吗? 据我所知,系统没有提供任何其他方法来查询即将发生的关机。如果确实如此,那也将解决我的问题。我也一直在尝试,但是更改似乎是瞬时的,

  • 问题内容: 是否有简短的指南来说明实例启动并运行时如何启动应用程序?如果它是已安装的服务之一,那么我想可以将其添加到服务中。(请确保正确吗?) 但是,我只想运行未通过安装的程序。要运行node.js程序,每当系统启动时,我都必须在主目录中运行脚本。 我不习惯使用Amazon Linux AMI,因此,我很容易找到一种“正确”的方式来在每次引导时自动运行某些脚本。 有没有一种优雅的方法可以做到这一点

  • 问题内容: 我的问题很简单,我该如何识别首次申请?我认为可以通过在RMS中保存一些值并在应用启动时读取它并决定要做什么来实现。 但是没有更简单的解决方案吗? 问题答案: 据我所知,没有比这更简单的方法了,但这还是很容易的。