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