当前位置:  技术问答>linux和unix

征集,进程意外终止后,自动重启的方法

    来源: 互联网  发布时间:2016-07-08

    本文导语:  我有一个程序,要求能够一直运行,故要求在其意外终止后,自动重启。 请问大家,这有些什么样的方法呢?如果有例程就更感谢了。 | 嗯,确实如此... 那可以使用监控进程或添加到/etc/inittab文件的...

我有一个程序,要求能够一直运行,故要求在其意外终止后,自动重启。
请问大家,这有些什么样的方法呢?如果有例程就更感谢了。

|


嗯,确实如此...
那可以使用监控进程或添加到/etc/inittab文件的方法。id:runlevel:action:程序
“kill指kill函数,它可以通过pid检测一个进程是否存在。”kill函数是向指定的进程发送指定信号的函数,为何要用kill函数来检测?

|
写一个shell就行了!当然这个程序要增加自我进程检测函数判别不能启动1个以上的程序。我写的这个脚本也有自检功能。
我给你写了一个,能跑通的测试过的 你把YourProgram 这里替换成你程序的名字就行了。

#!/dev/sh -x

#RUN_HOME=/Manuel.d/bin
RUN_HOME=/root/bin
###停滞状态
STOP=0;
###监护进程休眠时间
SLEEPTIME=1;
###是否开启AutoCheck监护脚本 1开0关
CHECKSWICH=1;
#CHECKSWICH=0;
###是否开启自我检查脚本 1开0关
SELFCHECKSWICH=1;
#SELFCHECKSWICH=0;
###脚本连接个数2-1
CONNENTCOUNT=2;

CheckProg()
{
while [ ${CHECKSWICH} ]
do

Date=` date +'%Y-%m-%d/%H:%M:%S' `;
echo "在"$Date"时间段进行:YourProgram进程监护";

ps -ef | grep -v grep | grep "YourProgram" |wc|awk '{print $1}'|read state;

if [ ${state} -eq ${STOP} ]
then

echo "YourProgram 进程异常停止n";
##########################
##在这里加上启动程序的命令
##########################

fi
echo "YourProgram 进程已被激活n";
echo "PS:下一次检测时间在"$SLEEPTIME"秒后n";
sleep ${SLEEPTIME};
done
}

SelfCheck()
{
if [ ${SELFCHECKSWICH} ]
then
sleep 3;
ps -ef | grep -v "grep" | grep "AutoCheck_" | wc |awk '{print $1}'|read count;

if [ ${count} -ge ${CONNENTCOUNT} ]
then

echo "启动失败,此进程现已存在.当前进程存在个数${count}n"
exit;
fi
echo "准备启动自动监护过程.n"
fi
}

Main()
{
SelfCheck;
CheckProg;
}

if [ $# -ne 1 ] || [ $1 != 1 ]
then
exit;
fi

if [ $1 = 1 ]
then
Main;
fi

exit;

|

这个脚本太烂了吧,
考虑一下,我正在看这个进程的log通常用 view YourProgram.log
这个脚本会出错的。
可靠的办法是
1. 
while [ 0 ]; do
YourProgram.pid &
wait $!
done


2.

pid_t pid;
int status;
    
for (;;) {
    pid = fork();
    if (pid 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 大家练练手,征集下面这个小程序的算法!!!(很有趣的阿!!)
  • 高分征集算法题,如果您有,请跟贴吧!
  • 急:征集網址:商務類網站-jsp﹗
  • 征集: JAVA中可能引发的异常及其含义——内详!
  • eWEEK沙龙征集高手座谈
  • #######征集:想问问大家,都是用什么工具做java项目的安装程序的######
  • 高分征集Think in java(第2版)中文电子版
  • 100分征集:小弟用VMware Workstation装上了linux不会上网请问如何解决?
  • ctag的问题及使用技巧征集
  • 高分征集linux下程序在线升级方案!
  • 高分征集答案:关于embedded linux 问题
  • 征集用到Vector的jsp程序,或代码片断
  • 【Linux版版服T恤方案征集】【正式开始!】
  • 征集用到Vector的程序,或者代码片断。
  • 征集时间判断方法
  • 发帖征集好书好友
  • 这个问题放在CU三天了,居然没有人能帮我,200分在这里征集正解!!!
  • Liunx+Apache+Tomcat的安全漏洞!!! 高分征集解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3