ubuntu18.04下部署java程序为系统服务,开机自启

背景:

服务器是一台公用的电脑,老是重启,之前每次都用shell脚本做启动关闭,但是没有做shell的开机启动,然后想想能不能用服务去设置,最后使用了如下办法。

插曲:

之前电脑上的rabbitmq,nginx,mysql,redis已经从服务改为docker服务,由于docker本身就注册了系统服务,但是本着万一后续有用的方法,我并没有卸载服务,但是网上的设置服务开机不启的方法多多少少都有问题,要么不适配18.04的版本,正好也趁着这个机会改造了下。

正文:

ubutun18.04下默认的服务启动时systemctl,当然也可以用service去做,不过systemctl本身又集成了chkconfig,因此以后还是多用systemctl了(之前长期使用centos6.4的缘故)。首先是在systemctl下配置服务,我这边的目录是
 

root@YQ-FWQ-01:/etc/systemd/system# pwd
/etc/systemd/system
root@YQ-FWQ-01:/etc/systemd/system# 

新建了一个jenkins.serive文件

[Unit]
Description=jenkins
After=syslog.target network.target

[Service]
WorkingDirectory=/home/fwq/jenkins
ExecStart= /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java -jar /home/fwq/jenkins/jenkins.war --httpPort=8080
SuccessExitStatus=143
TimeoutStopSec=10
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target

之前我没有在该目录放置时有时候汇报格式不正确,需要在头部加点东西,这边省事规范,我们就放在这个目录下就好了。

这里我被坑了好多次

ExecStart是可以配置一个shell地址的,但是shell里面本身不能用nohup命令,会导致服务一直在启动,然后就没了,还有一些杂七杂八的问题,其余 配置不做深入了解,反正从语义大概也知道是怎么回事。

 最后使用systemctl start jenkins

     systemctl status jenkins查看状态即可。

实测这样就没有问题了,最后使用systemctl enable jenkins设为开机自启即可,反之用disable取消自启

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章