shell脚本设置守护进程
来源:互联网 发布:mp3音量调节软件 编辑:程序博客网 时间:2024/05/18 02:50
今日在网上一篇博客上看到用shell脚本实现守护进程,于是参照此博客编写了一个脚本来实现自己守护进程。
应用程序名:pro_test
脚本文件名:mytest.sh
日志文件假:mylog
以上3项都放置在/usr/mytest目录下。
mytest.sh文件内容:
/*****************************************************************
#! /bin/bash
PROGRAM="pro_test"
LOG_PATH=./mylog
cd /usr/mytest
rm -rf ./mylog/*
while true ; do
sleep 9
PRO_CNT=$(ps aux | grep $PROGRAM | grep -v grep | wc -l)
if [ $PRO_CNT -lt 1 ]
then
./$PROGRAM &
date >> $LOG_PATH/check.log
echo "pro_test start" >> $LOG_PATH/check.log
echo "pro_test start"
else
echo "pro_test is exist" $PRO_CNT
fi
PRO_STAT=$(ps aux | grep $PROGRAM | grep T | grep -v grep | wc -l)
if [ $PRO_STAT -eq 1 ]
then
echo "$PROGRAM is stopped"
killall -9 $PROGRAM
echo "kill $PROGRAM"
sleep 3
echo "restart $PROGRAM"
./$PROGRAM &
date >> $LOG_PATH/check.log
echo "pro_test start" >> $LOG_PATH/check.log
fi
done
exit 0
*****************************************************************************/
编写脚本时有几处注意:
1,if条件语句里面表达式要与左右[ ] 用空格隔开,否则运行时会报错
2,用表达式给变量负值时要将表达式放在括号()里面,并在前面加符号"$",应该还有其他方法 目前只会这种,在参考那篇博客用单引号运行无法通过。
3,ps aux | grep $PROGRAM | grep -v grep | wc -l 此表达式检测运行进程数量
4,ps aux | grep $PROGRAM | grep T | grep -v grep | wc -l 此表达式检测进程运行状态,0:运行 1:停止 但进程依然存在 可以通过命令 kill -SIGSTOP pid 进行测试
第一个条件判断目标进程运行数目 数目小于1即为0 则运行目标进程
第二条件判断目标进程是否处于停止状态 处于停止状态则kill掉 重新运行该进程
应用程序编译完及脚本编写好后,在/etc/rc.local 文件中添加执行语句 /usr/mytest/mytest.sh & 重启后就能自动加载守护进程了。
应用程序名:pro_test
脚本文件名:mytest.sh
日志文件假:mylog
以上3项都放置在/usr/mytest目录下。
mytest.sh文件内容:
/*****************************************************************
#! /bin/bash
PROGRAM="pro_test"
LOG_PATH=./mylog
cd /usr/mytest
rm -rf ./mylog/*
while true ; do
sleep 9
PRO_CNT=$(ps aux | grep $PROGRAM | grep -v grep | wc -l)
if [ $PRO_CNT -lt 1 ]
then
./$PROGRAM &
date >> $LOG_PATH/check.log
echo "pro_test start" >> $LOG_PATH/check.log
echo "pro_test start"
else
echo "pro_test is exist" $PRO_CNT
fi
PRO_STAT=$(ps aux | grep $PROGRAM | grep T | grep -v grep | wc -l)
if [ $PRO_STAT -eq 1 ]
then
echo "$PROGRAM is stopped"
killall -9 $PROGRAM
echo "kill $PROGRAM"
sleep 3
echo "restart $PROGRAM"
./$PROGRAM &
date >> $LOG_PATH/check.log
echo "pro_test start" >> $LOG_PATH/check.log
fi
done
exit 0
*****************************************************************************/
编写脚本时有几处注意:
1,if条件语句里面表达式要与左右[ ] 用空格隔开,否则运行时会报错
2,用表达式给变量负值时要将表达式放在括号()里面,并在前面加符号"$",应该还有其他方法 目前只会这种,在参考那篇博客用单引号运行无法通过。
3,ps aux | grep $PROGRAM | grep -v grep | wc -l 此表达式检测运行进程数量
4,ps aux | grep $PROGRAM | grep T | grep -v grep | wc -l 此表达式检测进程运行状态,0:运行 1:停止 但进程依然存在 可以通过命令 kill -SIGSTOP pid 进行测试
第一个条件判断目标进程运行数目 数目小于1即为0 则运行目标进程
第二条件判断目标进程是否处于停止状态 处于停止状态则kill掉 重新运行该进程
应用程序编译完及脚本编写好后,在/etc/rc.local 文件中添加执行语句 /usr/mytest/mytest.sh & 重启后就能自动加载守护进程了。
0 0
- shell脚本设置守护进程
- Linux守护进程Shell脚本
- Linux守护进程Shell脚本
- shell 脚本实现的守护进程
- shell 脚本实现的守护进程
- shell 脚本实现的守护进程
- 用shell 脚本写守护进程
- shell 脚本实现的守护进程
- 用shell 脚本写守护进程
- 使用shell脚本守护node进程
- 用shell 脚本写守护进程
- linux利用shell实现守护进程的脚本
- Shell Programming(二)——编写守护进程脚本
- linux利用shell实现守护进程的脚本
- Shell守护脚本
- shell 守护进程
- shell 版守护进程
- shell的守护进程
- 动态规划
- 在Visual Studio 2010/2012/2013/2015上使用C#开发Android/IOS安装包和操作步骤
- 某P保护之调戏权限清0的学习。
- linux驱动一 设备号的分配和管理
- 判别模型(Discriminative model)和生成模型(Generative model)
- shell脚本设置守护进程
- Android总结--SQLite
- Sublime Text3注册码(可用)
- phpstrom2016.1.2运行项目设置
- 软件工程师必读技术书籍推荐
- 数组中的逆序对37
- 文章标题
- C#委托与事件学习笔记
- 1075. PAT Judge (25)