进程间通信的思路!
大家好,我是新手!
我的程序功能是这样:父进程A,fork()一个子进程后,在子进程代码段中用execl开启另外一个程序B。
现在的需求:
1.程序B和A如何利用管道进行通信?(其实最终的目的是达到2)
2.程序A能获知B的运行状态,即是否在运行或是发生dump;当程序A关闭时,程序B能获知这一消息,关闭自身。
希望大家能给点意见,小弟感激不尽!
------解决方案--------------------记录A的进程号,定时检查这个进程是否还在
------解决方案--------------------
那就只能记录下B的pid,然后在查询的时候去检查这个进程还在不在。
其实做成一个service就可以满足你的需求了,可以参考一下/etc/init.d下面的脚本。
脚本都支持start, stop 和status参数,正好满足你的需要。
------解决方案--------------------
管道可以啊,当读写一个对端进程已经不存在的管道,是会提示相应的错误的。可用select监控该管道的变化情况。
不过我倒是觉得你的方法更好,用信号通知.
------解决方案--------------------
我觉得也可以自己实现一个心跳检测呢?定时点子进程的名,看看还在不在?
------解决方案--------------------