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取消自啓

 

 

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