当前位置: 技术问答>linux和unix
请教:有关进程
来源: 互联网 发布时间:2015-10-13
本文导语: 我想写个程序A作为后台,希望可以检测另外的程序B和程序C是否在运行。如果,B和C同时在运行,就让B停止运行,但不是退出(这是不是叫挂起?)。直到C退出后才重新让B运行。 这样的后台能做到么?请大家指教...
我想写个程序A作为后台,希望可以检测另外的程序B和程序C是否在运行。如果,B和C同时在运行,就让B停止运行,但不是退出(这是不是叫挂起?)。直到C退出后才重新让B运行。
这样的后台能做到么?请大家指教。
我现在还不知道要往哪个方向写。作后台是不是就是写一个守护程序呢?怎样检测程序是否在运行呢?还有就是怎样才能“挂起”程序和重新让“挂起”状态的程序运行起来呢?
请高手指点。谢谢!
这样的后台能做到么?请大家指教。
我现在还不知道要往哪个方向写。作后台是不是就是写一个守护程序呢?怎样检测程序是否在运行呢?还有就是怎样才能“挂起”程序和重新让“挂起”状态的程序运行起来呢?
请高手指点。谢谢!
|
后台是不是就是写一个守护程序呢?也可以这样讲,不过一个应用程序通过在命令后加上 & 也可以让它在后台运行;实时检测有些困难但也不是不可以,楼主可以钻研一下,定时检测倒是简单的 ps -aux |grep B ps -aux |grep B 就可以了,如果都有至少一行,则同时启动了,挂起,只需要向进程发一个信号 kill -SIGTSTP pidB
|
可以做守护进程,也可以写一shell加入crontab
|
关于挂起,我建议可以采用信号灯的办法,因为信号灯可以无限制阻塞
reference : semoper semget ...
reference : semoper semget ...
|
定时执行的一个程序