ubuntu 开机自启动jar,同时监控端口好,服务崩溃自动重启,编写sh脚本

1. 编写sh脚本 用于开机自启动个

在这个模块中注意:java 环境一定要写!!!!我其中没有写java环境,发现没有启动成功

root@hfxyai-OptiPlex-5000-China-HDD-Protection:/home/server# gedit /etc/init.d/server.sh

#!/bin/sh
### BEGIN INIT INFO
# Provides:          autoJar.sh
# Required-start:    $local_fs $remote_fs $network $syslog
# Required-Stop:     $local_fs $remote_fs $network $syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts the svnd.sh daemon
# Description:       starts svnd.sh using start-stop-daemon
### END INIT INFO
export JAVA_HOME=/home/data/java
export PATH=${JAVA_HOME}/bin:$PATH

#路径问题 很关键
cd /home/server
nohup java -jar hf-lab-0.0.1-SNAPSHOT.jar >/home/server/nohup.log&
#./taskStartTomcat.sh
echo "运行正常!"

通过chmod 775 server.sh 

授权

sudo update-rc.d server.sh defaults 90

然后reboot 重启生效

2. 编写监听端口的sh脚本



#!/bin/sh
export JAVA_HOME=/home/data/java
export PATH=${JAVA_HOME}/bin:$PATH
time=`date +%Y-%m-%d-%H:%M`
app=`netstat -pltun |grep 8085 |wc -l`
 
if [ $app -eq 0 ];then
  #如果端口没有占用的话要怎么怎么样
  cd /home/server
  nohup java -jar /home/server/hf-lab-0.0.1-SNAPSHOT.jar >>/home/server/nohup.log &
   echo "停止运行了,停止的时间是 " $time >>/home/server/test.log
else
  #如果端口被占用的话要怎么怎么样
 echo "执行结束时间:" $time1 >>/home/server/test.log
fi

root@hfxyai-OptiPlex-5000-China-HDD-Protection:/home/server# chmod +x taskStartTomcat.sh

 通过chmod 775 taskStartTomcat.sh  授权

3. 开启定时任务 

crontable 在ubuntu20是默认安装的,如果没安装可以直接sudo apt-get install cron安装

root@hfxyai-OptiPlex-5000-China-HDD-Protection:/home/server# crontab -e
//

*/1 * * * * sh /home/server/taskStartTomcat.sh

重启cron服务:service cron restart

posted @ 2022-10-12 09:23  李悠然  阅读(244)  评论(0编辑  收藏  举报