老鬼的博客 来都来啦,那就随便看看吧~
systemd设置开机自启动脚本
发布于: 2023-04-18 更新于: 2023-11-02 分类于:  阅读次数: 

一:新增.service文件

  • my.service(/etc/systemd/system/)
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Java start

After=network.target

[Service]

Type=forking
ExecStart=/opt/app/start.sh
ExecStop=/opt/app/stop.sh

[Install]
WantedBy=multi-user.target
  • 解释
1
2
ExecStart是启动脚本
ExecStop是停止脚本

二:使用systemctl命令启用service文件

1
2
3
4
5
chmod 777 my.service
systemctl enable my.service
完成以上步骤后,Shell脚本就会在系统启动时自动运行了。
systemctl disable my.service
如上是移除指令

三:备注

3.1 start.sh

1
2
3
4
5
#!/bin/bash
cp /opt/app/eservice.jar /opt/app/server/eservice.jar
cd /opt/app/server/
echo "-----------start eservice sever-----"
nohup /opt/jdk1.8.0_251/bin/java -jar eservice.jar --spring.profiles.active=prod --server.port=8080 > /opt/app/nohup.out 2>&1 &

3.2 stop.sh

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
cp /opt/app/eservice.jar /opt/app/server/eservice.jar
cd /opt/app/server/
echo "-----------start eservice sever-----"
nohup /opt/jdk1.8.0_251/bin/java -jar eservice.jar --spring.profiles.active=prod --server.port=8080 > /opt/app/nohup.out 2>&1 &
[root@test-server app]# cat stop.sh
#!/bin/bash
cd /opt/app/server/
echo "-----------stop eservice sever-----"
ps -ef | grep 8080 | grep -v grep | awk '{print $2}' | xargs --no-run-if-empty kill -s 9

3.3 感悟

1
2
经测试是有些可以用,有些不能用,体验不是很好,可以直接修改/etc/rc.d/rc-local来实现,
参考:rc.local设置开机自启动脚本(文章)
*************感谢您的阅读*************