systemd设备Jar自启动
对于当前用户master
家目录下/home/master
的spring-boot-vue.jar
,设置开机自启动。
创建Service服务
在/lib/systemd/system/
目录下创建要自动启动的服务runMonitor.service
,在/etc/systemd/system
目录下创建也可以。
[Unit]
Description=ipc
After=network.target[Service]
Type=forking
User=master
# 服务启动时执行的脚本,
### 使用sh命令包括其他Linux系统命令时都要使用全路径,/bin/sh等,包括.sh文件也需要使用绝对路径,才能找到。
ExecStart=/bin/sh /home/master/runMonitor.sh
# 服务停止时执行的脚本
ExecStop=/bin/sh /home/master/stopMonitor.sh
# Restart=always 表示程序退出就会重启,未进行测试
# Restart=always
[Install]
WantedBy=multi-user.target
使用sh命令包括其他Linux系统命令时都要使用全路径,/bin/sh等,包括.sh文件也需要使用绝对路径,才能找到。否则会报错误。
/home/master
下创建启动脚本runMonitor.sh
#!/bin/bash
# 设置java环境变量,否则不能使用java -jar 命令,需要写全路径
export JAVA_HOME=/home/master/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATHnohup java -jar /home/master/spring-boot-vue.jar > /home/master/springBootVue.log 2>&1 &
# 输出进行号到指定文件,方便下面的停止脚本使用
echo $! > /home/master/run/runMonitor.pid
/home/master
下创建停止脚本stopMonitor.sh
#/bin/sh
PID=$(cat /home/master/run/runMonitor.pid)
kill -9 $PID
rm -fr /home/master/run/runMonitor.pid
使用测试
- 对
runMonitor.sh
、stopMonitor.sh
添加可执行权限
chmod +x runMonitor.sh
chmod +x stopMonitor.sh
- 刷新服务配置
sudo systemctl daemon-reload
- 启动服务
sudo systemctl start runMonitor
- 查询服务状态
sudo systemctl status runMonitor
- 关闭服务
sudo systemctl stop runMonitor
服务加入开机启动
sudo systemctl enable runMonitor.service
系统会自动在/etc/systemd/system/multi-user.target.wants
下再新建一个runMonitor.service
软链接。
参考一:https://www.freesion.com/article/84901418968/
参考二:https://www.freesion.com/article/8880495624/
参考三:https://www.dazhuanlan.com/xlxd/topics/1653197
以上脚本下载请访问:Linux开机自启动脚本