一、制作服務(wù)啟動(dòng)腳本
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
用法:
啟動(dòng)服務(wù):./start.sh start
關(guān)閉服務(wù):./start.sh stop
重啟服務(wù):./start.sh restart
檢查服務(wù)狀態(tài):./start.sh status
二狗热、服務(wù)自檢腳本
serverCheck.sh
1.該服務(wù)會(huì)每隔10分鐘檢查服務(wù)狀態(tài)驰怎,發(fā)現(xiàn)服務(wù)done機(jī)阐滩,會(huì)自動(dòng)調(diào)用啟動(dòng)腳本 ./start.sh start啟動(dòng)服務(wù)
2.initserver函數(shù)的入?yún)閟pringboot 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服務(wù)器县忌,啟動(dòng)初始化自檢腳本
- cd /etc/init.d/ 目錄新建webautostart啟動(dòng)腳本文件
vi /etc/init.d/webautostart
webautostart腳本內(nèi)容
#!/bin/bash
# chkconfig: 3 88 88
/home/app/serverCheck.sh > /dev/null 2>/dev/null
設(shè)置執(zhí)行權(quán)限
chmod +x /etc/init.d/webautostart
2.執(zhí)行命令添加服務(wù)到系統(tǒng)自啟動(dòng)列表掂榔,并檢查是否成功
1)添加服務(wù)
chkconfig --add webautostart
2)檢查服務(wù)是否添加成功
chkconfig --list
四址儒、重啟linux服務(wù)器檢查服務(wù)是否自啟動(dòng)
reboot