您的位置:首页 > 运维架构 > Shell

实现一个简单的服务自启动shell脚本

2018-02-08 10:47 302 查看
1、准备工作:

1) 需要有一个服务本身启动的命令文件 ,如:./server.sh,server等等,这里假定为server.sh

2) 需要一个日志记录文件log.server;

2、开始编写服务自启动程序 :

vim restart.sh

#该服务的自启动文件名为 restart.sh
#此句可省略
#!/bin/sh
#记录自启动的次数
count=0
#此处为一个while死循环,保证服务能够被及时启动
while true
do
#获取服务的进程id(可通过Linux命令:ps,查询该进程名server--在最后一列COMMAND)
id=`pidof "server"`
#如果获取到的进程ID为空,说明该线程已经挂掉
if[ !-n "$id" ]
then
#进程启动次数加1
count=$(($count+1))
#输出重启时间和提示信息
echo -e `date +%Y-%m-%d-%H-%M-%S` "restart server,the $count time!~~\n\n"
#重启服务,并保持在后台启动
nohup ./server.sh >log.server & //后台重新启动服务
fi
#保持50ms一个轮询
usleep(50000)
done


注意 :

1) 该shell脚本程序也有局限性,断电就不能用了,需要手动重启脚本 ./restart.sh

2) 想要在断电后也能重启服务,请研究系统自启设置或系统任务命令 crontab,推荐一种解决方案,参见如下博客:

http://blog.csdn.net/daidaineteasy/article/details/54864776

[1].shell编程——if语句 if -z -n -f -eq -ne -lt

[2].我使用过的Linux命令之pidof -

[3].shell echo 知多少 -n, -e 主要是参数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: