首先在/usr/lib/systemd/system 下編寫自己的系統(tǒng)服務(wù)。
vi xxxxx-xxxxx.service
[Unit]
Description= xxxxx server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/home/jocelyn/bin/startXXX.sh
ExecStop=/home/jocelyn/bin/stopXXX.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
具體含義請(qǐng)參考 http://blog.csdn.net/ch21st/article/details/51383877
服務(wù)編寫好之后使用systemctl start xxxxx-xxxxx.service
讓服務(wù)可以開機(jī)自啟
可以采用 systemctl start xxxxx-xxxxx.service
systemctl stop xxxxx-xxxxx.service
測(cè)試服務(wù)是否能正確執(zhí)行。
報(bào)錯(cuò)可以用 systemctl status xxxxx-xxxxx.service
查看服務(wù)狀態(tài)。
Q&A
Q1: Exec format error
A1: 在指向的啟動(dòng)腳本中添加 #!/bin/bash 一個(gè)bash 腳本的開始標(biāo)記,必須以 #!/bin/bash開頭,系統(tǒng)執(zhí)行該腳本時(shí),以/bin/bash 作為解釋器。
Q2: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
A2: 因?yàn)閞oot用戶沒有指定JAVA_HOME的環(huán)境變量,所以在所有的啟動(dòng)腳本前,指定JAVA_HOME的路徑即可。
#!/bin/sh
JAVA_HOME=/opt/jdks/java-1.7.0_80-x64