首先在/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
具體含義請參考 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
測試服務(wù)是否能正確執(zhí)行。
報錯可以用 systemctl status xxxxx-xxxxx.service
查看服務(wù)狀態(tài)抵皱。
Q&A
Q1: Exec format error
A1: 在指向的啟動腳本中添加 #!/bin/bash 一個bash 腳本的開始標(biāo)記,必須以 #!/bin/bash開頭妥箕,系統(tǒng)執(zhí)行該腳本時笙隙,以/bin/bash 作為解釋器。
Q2: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
A2: 因為root用戶沒有指定JAVA_HOME的環(huán)境變量毅访,所以在所有的啟動腳本前,指定JAVA_HOME的路徑即可盘榨。
#!/bin/sh
JAVA_HOME=/opt/jdks/java-1.7.0_80-x64