如何在unix下,自己写一个程序,去监测另外一个程序的运行状况?
我的系统是sco unix. 问题点数:20、回复次数:11Top
1 楼mengliu(以德服人)回复于 2001-08-24 18:59:46 得分 2
看一下ptrace()Top
2 楼goodfood(在天堂和地狱的入口为你疯狂,耶~~)回复于 2001-08-24 22:11:50 得分 2
gzTop
3 楼hhutuchong(hhutuchong)回复于 2001-08-25 10:53:56 得分 0
to:mengliu(梦灵).能说的具体点么,我是个菜鸟Top
4 楼mengliu(以德服人)回复于 2001-08-25 11:09:48 得分 0
看一下man ptrace。你太谦虚了。Top
5 楼jcsun(超)回复于 2001-08-25 16:54:32 得分 0
对于一个程序,在应用的角度考虑,
我一般是在应用程序中作状态输出,
可以写共享内存或命名管道,效果都不错。
然后,监控程序在共享内存或管道中取数据。Top
6 楼alpha_wang(南海十三郎)回复于 2001-08-26 10:11:57 得分 2
QMail的作者写了一个,叫daemontool的,能监视一个进程是否在运行。如果死了就把它再起起来。Top
7 楼hhutuchong(hhutuchong)回复于 2001-08-26 14:35:51 得分 0
我希望能看到一个具体的例子Top
8 楼leechie(刘长风)回复于 2001-08-26 17:47:47 得分 4
while(1)
{
if(!kill(0,pid))
{
if((pid=fork())==0)
{
execl(...);
}
}
else
sleep(1);
}Top
9 楼hhutuchong(hhutuchong)回复于 2001-08-27 18:50:09 得分 0
to jcsun(超):
小弟我对unix不太熟悉,你能告诉我怎么将ps的结果写到共享内存么?分我会在搞定这个问题以后给的.Top
10 楼jcsun(超)回复于 2001-08-27 23:46:10 得分 10
我想我们说的不是一个问题,
先说你的问题,
如果只需要ps可以显示的进程信息,何必编程呢,
在crontab里加一个命令足可以实现定时监控了,
如:01 * * * * ps -ef | grep 进程名 >> $HOME/myproc.log
我本来讨论的是
应用进程是和监控进程都是你的程序。
哈,最好举例子来说。Top
11 楼hhutuchong(hhutuchong)回复于 2001-08-28 22:07:08 得分 0
谢谢,jcsun(超)
问题解决了,我本来的意思就是应用程序和监控进程都是我的程序.
我给你10分,非常感谢Top




