首先在/usr/lib/systemd/system 下編寫自己的系統(tǒng)服務。
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
服務編寫好之后使用systemctl start xxxxx-xxxxx.service 讓服務可以開機自啟
可以采用 systemctl start xxxxx-xxxxx.service
systemctl stop xxxxx-xxxxx.service 測試服務是否能正確執(zhí)行。
報錯可以用 systemctl status xxxxx-xxxxx.service查看服務狀態(tài)。
Q&A
Q1: Exec format error
A1: 在指向的啟動腳本中添加 #!/bin/bash 一個bash 腳本的開始標記,必須以 #!/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