社区
Linux/Unix社区
帖子详情
如何用守护进程来监控另一个进程的状态
gcc_gun
2009-08-14 10:40:48
如题,当另一个进程状态僵死或者不可用的时候,守护进程就会去重新启动这个进程,这如何能够实现,请各位DX帮忙~~~
...全文
950
8
打赏
收藏
如何用守护进程来监控另一个进程的状态
如题,当另一个进程状态僵死或者不可用的时候,守护进程就会去重新启动这个进程,这如何能够实现,请各位DX帮忙~~~
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gcc_gun
2009-08-21
打赏
举报
回复
[Quote=引用 7 楼 vicky1982 的回复:]
假设要监控的进程名称为test,TargetProcessName为启动该进程的脚本
while [ 0 ]
do
Result=$(ps -ef | grep -v grep |grep "test")
if [ "" == "$Result" ]
then
RecordTime=$(date)
echo "Restar test" >>$LogFile
nohup $TargetProcessName>>$LogFile &
sleep 2
fi
Result=
done
[/Quote]
谢谢,这种方法是实现了如果进程列表中没有该进程的话,就执行相应的程序。
但是我现在想要实现的是进程状态不正常的时候就对其进行重启。
我现在的做法是:用父进程去创建这个进程,然后调用waitpid(),该函数在子进程状态改变为不正常的时候会返回,根据返回值做一些相应的处理。
另外,根据进程占用CPU使用率的情况也可以获得一些信息,但是用TOP来获取CPU占用率比较困难,但是TOP是实时的,信息比较准。
vicky1982
2009-08-19
打赏
举报
回复
假设要监控的进程名称为test,TargetProcessName为启动该进程的脚本
while [ 0 ]
do
Result=$(ps -ef | grep -v grep |grep "test")
if [ "" == "$Result" ]
then
RecordTime=$(date)
echo "Restar test" >>$LogFile
nohup $TargetProcessName>>$LogFile &
sleep 2
fi
Result=
done
threeleafzerg007
2009-08-18
打赏
举报
回复
回楼上 都能 status 有一系列的宏 对应可以检测。
threeleafzerg007
2009-08-17
打赏
举报
回复
你说的一般都是一个watch dog 进程 一旦被监视进程死掉了 对吧 就立马重启一下。
也简单, 用watch dog进程 fork 被监视进程 然后 waitpid上 根据 返回的status 决定进一步的操作。
用脚本估计也是行的。
gcc_gun
2009-08-17
打赏
举报
回复
怎么没有人来看看呢。。。小弟急啊~~~
gcc_gun
2009-08-17
打赏
举报
回复
[Quote=引用 4 楼 threeleafzerg007 的回复:]
你说的一般都是一个watch dog 进程 一旦被监视进程死掉了 对吧 就立马重启一下。
也简单, 用watch dog进程 fork 被监视进程 然后 waitpid上 根据 返回的status 决定进一步的操作。
用脚本估计也是行的。
[/Quote]
对啊,是指的这个意思,呵呵,谢谢啊~~~
waitpid能够返回进程的僵死啊,异常这些状态吗?我去查一下。
另外再问一下,守护进程能否完成此项工作的?
gcc_gun
2009-08-14
打赏
举报
回复
谢谢一楼的回复,你回复的网址不知道为什么我打不开~~~
在这过程中我自己找到了一个,但是效果不好~~~当一个进程处于(SL)状态的时候,我没有找到这个状态是什么意思,猜想应该是中断的意思吧,那个脚本就没有作用了,进程一直处于死的状态,kill是不起作用的了,不知道是怎么回事~~~我里面也没有用到什么信号量啊这些会导致相互等待的东西,请帮忙,谢谢~~~
猫已经找不回了
2009-08-14
打赏
举报
回复
http://www.zrway.com/news/news_in.jsp?RecNo=332
其实写个脚本监控即可
【
进程
与线程】如何编写
一个
守护
进程
如何编写
一个
守护
进程
。我们首先需要理解
守护
进程
是什么。
守护
进程
是在后台运行的
进程
,通常没有控制终端,用于执行系统任务,比如服务器或者定时任务。 用户可能想创建
一个
长期运行的服务,比如Web服务器或者日志
监控
程序。首先,
守护
进程
的创建通常包括几个步骤:fork子
进程
,让父
进程
退出,这样终端会认为命令执行完毕,子
进程
继续运行。然后调用setsid创建新的会话,脱离终端。接着改变工作目录到根目录,避免占用可卸载的文件系统。还要设置文件创建掩码,通常是0,以拥有更大的灵活性。关闭不需要的文件描述符,比如标准输入、输
利用Linux
守护
进程
机制完成
一个
简单系统
监控
demo
根据前篇《Linux
守护
进程
设计规范及Python实现》,我们给出了
一个
基于Python的
守护
进程
框架,想要使用此框架构建自己的
守护
进程
,只需要继承Daemon类并实现run方法即可。在本文中,我们将按照此思路设计
一个
linux系统状况
监控
程序。 目前,社区中有很多开源的系统
监控
软件,例如Ganglia、Zabbix等,这些软件以其优异的性能以及丰富的功能赢得了很多运维工程师的青睐,但是很多时候
实验三
守护
进程
一、实验目的 1、了解
守护
进程
的生命周期及应用; 2、掌握编写
守护
进程
的五个基本步骤。 二、实验内容 1、编写
守护
进程
test,test每3秒钟打印
一个
数字,定向输出到trush.txt 2、编写并编译monitor.c,其功能为每5秒检测一次test是否正在运行;若未运行,则运行该程序。 3、先验证test是否能正常运行,需要执行test,然后用命令查看数字是否正常输出至trush....
Linux
守护
进程
Linux
守护
进程
是一种在后台运行的特殊
进程
,它们独立于控制终端,周期性地执行任务或提供服务。创建
守护
进程
需要遵循特定的流程,包括创建子
进程
、创建新会话、改变当前目录、重设文件权限掩码和关闭文件描述符。
守护
进程
可以通过systemctlservice或systemd命令来管理。
< Linux >
守护
进程
目录 1、
守护
进程
守护
进程
的概念
进程
组和会话 2、
守护
进程
化的方式 TCP网络程序(
守护
进程
化) TCP网络程序(
守护
进程
化)gitee地址 daemon创建
守护
进程
nohup命令
Linux/Unix社区
23,224
社区成员
74,535
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章