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

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,推荐一种解决方案,参见如下博客:
    https://www.cnblogs.com/mingforyou/p/3930636.html
    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 主要是参数

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值