一:新增.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设置开机自启动脚本(文章)
|
*************感谢您的阅读*************