LINUX检测服务并自动运行,linux服务器中boot服务自启动监测

一、制作服务启动脚本

start.sh

#!/bin/bash

echo "restart web-server,please wait for a moment."

app_name=/home/app/demo.jar

usage(){

echo "usage: start.sh [start|stop|restart|status]"

exit 1

}

is_exist(){

pid=`ps -ef|grep $app_name|grep -v grep|awk '{print $2}'`

echo "pid=${pid}"

if [ -z "${pid}" ]

then

return 0

else

return 1

fi

}

status(){

is_exist

if [ $? -eq 1 ]

then

echo "${app_name} is already running. pid=${pid}"

else

echo "${app_name} is not running"

fi

}

start(){

is_exist

if [ $? -eq 1 ]

then

echo "${app_name} is already running. pid=${pid}"

else

echo "start ${app_name}..."

/home/java/bin/java -Xmx512M -Xms512M -Xmn300M -XX:MaxMetaspaceSize=200M -XX:MetaspaceSize=200M -XX:+UseConcMarkSweepGC -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses -XX:+CMSClassUnloadingEnabled -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark -Xdebug -Xrunjdwp:transport=dt_socket,address=5044,suspend=n,server=y -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev -jar ${app_name} > /dev/null 2>&1 &

fi

}

stop(){

is_exist

if [ $? -eq 1 ]; then

kill -9 $pid

else

echo "${app_name} is not running."

fi

}

restart(){

stop

sleep 5

start

}

case "$1" in

"start")

start

;;

"stop")

stop

;;

"restart")

restart

;;

"status")

status

;;

*)

usage

;;

esac

用法:

启动服务:./start.sh start

关闭服务:./start.sh stop

重启服务:./start.sh restart

检查服务状态:./start.sh status

二、服务自检脚本

serverCheck.sh

1.该服务会每隔10分钟检查服务状态,发现服务done机,会自动调用启动脚本 ./start.sh start启动服务

2.initserver函数的入参为springboot jar名称

#!/bin/bash

initserver(){

local app_name=$1

local pid=`ps -ef|grep $app_name|grep -v grep|awk '{print $2}'`

if [ -z "${pid}" ]

then

echo `date +%Y-%m-%d` `date +%H:%M:%S` "start server ${app_name} ..." >> shell.log

/home/app/${app_name}/start.sh start

else

echo `date +%Y-%m-%d` `date +%H:%M:%S` "${app_name}:${pid} has been started." >> shell.log

fi

}

while true

do

initserver demo

initserver demo

sleep 600

done

三、添加linux服务器,启动初始化自检脚本

cd /etc/init.d/ 目录新建webautostart启动脚本文件

vi /etc/init.d/webautostart

webautostart脚本内容

#!/bin/bash

# chkconfig: 3 88 88

/home/app/serverCheck.sh > /dev/null 2>/dev/null

设置执行权限

chmod +x /etc/init.d/webautostart

2.执行命令添加服务到系统自启动列表,并检查是否成功

1)添加服务

chkconfig --add webautostart

2)检查服务是否添加成功

chkconfig --list

30540f6f6cdf

image.png

四、重启linux服务器检查服务是否自启动

reboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值