Linux 启动Jar脚本&&设置开机自启【超级详细】
- 概要
- 服务器开机自启
- 服务重启脚本
概要
最近在Linux服务器中部署了一个项目(单机版),每次更新服务的时候需要用到好几个命令,停止服务,再重启,并且服务器突然重启后,还需要人工重启服务,非常繁琐,下面展示了两个脚本的写法。。
服务器开机自启
- 检查系统是否安装jdk;
java -version
- 查看jdk安装位置
whereis java
- 编写脚本
restart_yhfw.service
[Unit]
Description=Ruoyi Admin Service
After=network.target[Service]
Type=simple
# 修改下面的java位置和你的jar包位置
ExecStart=/usr/local/jdk1.8.0_341/bin/java -jar /usr/local/project/yhfw/ruoyi-admin.jar --spring.config.location=/usr/local/project/yhfw/application.yml
ExecStop=/bin/kill -TERM $MAINPID
Restart=no
User=root
# 修改下面的java位置
Environment="JAVA_HOME=/usr/local/jdk1.8.0_341"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"[Install]
WantedBy=multi-user.target
- 添加脚本至你的服务器
将以上脚本放至到目录
/etc/systemd/system
下面
- 给以上脚本添加权限
chmod 777 restart_yhfw.service
- 重启服务器,查看自己的jar服务是否启动
服务重启脚本
- 编写脚本
restart_yhfw.sh
重点!!!重点!!!重点!!!需要将以下路径和jar包名称更换成你自己的
#!/bin/bash# 定义变量(更换你的jar包路径)
JAR_FILE="/usr/local/project/yhfw/ruoyi-admin.jar"
CONFIG_FILE="/usr/local/project/yhfw/application.yml"
LOG_FILE="/usr/local/project/yhfw/nohup.out"# 检查JAR文件是否存在
if [ ! -f "$JAR_FILE" ]; thenecho "Error: JAR file does not exist at $JAR_FILE"exit 1
fi# 检查是否有读取权限
if [ ! -r "$JAR_FILE" ]; thenecho "Error: No read permission for JAR file at $JAR_FILE"exit 1
fi# 检查配置文件是否存在
if [ ! -f "$CONFIG_FILE" ]; thenecho "Error: Configuration file does not exist at $CONFIG_FILE"exit 1
fi# 检查是否有读取权限
if [ ! -r "$CONFIG_FILE" ]; thenecho "Error: No read permission for configuration file at $CONFIG_FILE"exit 1
fi# 获取进程ID
PID=$(ps -ef | grep "${JAR_FILE}" | grep -v "grep" | awk '{print $2}')# 检查是否有进程在运行
if [ -n "$PID" ]; thenecho "Stopping ruoyi-admin.jar with PID $PID..."kill -15 $PIDsleep 5 # 给出一些时间让进程优雅地关闭if ps -p $PID > /dev/null; thenecho "Process did not stop gracefully, forcing shutdown."kill -9 $PIDelseecho "ruoyi-admin.jar stopped successfully."fi
elseecho "ruoyi-admin.jar is not running. Starting it now."
fi# 启动应用
echo "Starting ruoyi-admin.jar with configuration from $CONFIG_FILE..."
nohup java -jar -Dspring.config.location=file:$CONFIG_FILE ${JAR_FILE} > ${LOG_FILE} 2>&1 &
if [ $? -eq 0 ]; thenecho "ruoyi-admin.jar started successfully."
elseecho "Failed to start ruoyi-admin.jar. Check the log file for more details."
fi# 打印nohup的日志
echo "Printing yhfw log..."
tail -f /usr/local/project/yhfw/ruoyi-admin.log
- 给脚本添加权限
chmod 777 restart_yhfw.sh
- 执行脚本测试
sh restart_yhfw.sh
下一篇:单机版本服务如何做到无感更新