服务自启动脚本编写与Linux定时任务添加
由于服务器断电或者其他原因重启后,部署在服务器中服务停止运行,这时候需要手动执行服务运行命令,这项工作简单但又繁琐,因此编写一个脚本,让其定时监测服务运行状态,当服务停止时执行服务运行命令。
服务自启动脚本编写
#首先判断服务是否正在运行,以nginx为例子来说明
#使用命令可以查看目前运行的服务,“ps -ef | grep "nginx" | grep -v "grep"”
#显示nginx目前有两个进程,
…… master process ./nginx
…… worker process
#其中./nginx是前端运行的nginx代理,因此需要确定的是这个进程是否运行中即
ps -ef | grep "./nginx" | grep -v "grep"
#后续中只需判断进程的个数即可,则使用下面命令
ps -ef | grep "./nginx" | grep -v "grep" | wc -l
具体脚本如下:
#使用vim test.sh创建文件
#脚本内容如下:
#获取./nginx 进程个数
nginx_count=$(ps -ef | grep "./nginx" | grep -v "grep" | wc -l)
#获取服务器当前时间
time=`date + %Y%m%d-%H%M`
#判断进程个数是否等于0,若等于0则执行启动命令
if [ $nginx_count -eq 0]
then
cd /usr/local/nginx/sbin
./nginx
#将启动时间写进脚本同文件夹的log.txt中
echo "start nginx - $time" >> log.txt
#睡眠5秒,这里可能在其他服务上用到,启动一些基础服务,待完全启动之后,再启动java等服务
sleep 5
fi
为文件赋权限
chmod +x test.sh
#可以先把./nginx的进程杀掉,在执行一下脚本,看下是否起作用
添加定时任务
# 设置定时任务,输入命令之后会进入一个文本编辑页面,输入自己的定时任务设置保存即可。
crontab -e
#分、时、日、月、周;这里设置的是每15分钟执行一次脚本
15 * * * * /test.sh
#重启定时任务设置
systemctl restart crond
#查看已设置的定时任务
crontab -l
之后,当服务器重启之后,定时任务就会执行脚本。