首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果进程在QNX中死亡,请通知

如果进程在QNX中死亡,请通知
EN

Stack Overflow用户
提问于 2014-09-05 15:30:45
回答 1查看 906关注 0票数 0

我有两个程序。1)服务器和2)客户端。客户端运行的额外条件是服务器进程必须运行。我可以这样做,检查我的监视pidin命令的输出。问题在于当服务器进程在客户端运行时死亡。我(客户端进程)希望能够在服务器进程死亡时得到通知并重新启动服务器进程。

能否以最简单的方式实现这一点?QNX是否为此提供了任何机制?

PS:我不想使用QNX机制(比如ConnectAttach)。

EN

回答 1

Stack Overflow用户

发布于 2014-09-05 16:42:39

  1. 如果服务器本身不去守护,那么它的父服务器可以通过SIGCHLD处理程序和waitpid()检测终止。在此页面上有一个随机的示例,其中包括:服务器的父服务器handler.html可以提供终止通知。
  2. 如果服务器自行守护,那么任何人都可以通过特定于QNX的procmgr_event_notify() API检测它的终止。下面的正式文档页面提供了一个完整的示例程序,演示API的使用:notify.html
  3. 不是很好的风格,但是如果您对快速攻击很满意,那么您可以定期检查/proc下正在运行的进程列表。/proc下的每个数字目录条目表示一个具有目录的PID=name的进程。文件页(2.)上面演示了如何获取进程的名称(二进制文件的完整路径)。如果您使用此方法,那么我的建议是找出您要查找的进程的pid,并在稍后才对pid进行监视,而不是每次查看完整的列表。还请注意,理论上,原始进程可能终止,PID在两个连续检查之间被重用。如果您目前正在运行pidin并解析它的输出,那么我建议您使用这个条目中描述的方法,因为这种方法比创建一个完整的pidin过程所涉及的开销小得多。

如果你对上述问题有任何疑问,请告诉我。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25689323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档