1 說明
設置開機自啟動,需要用到systemctl工具。
systemctl是一個systemd工具,主要負責控制systemd系統和服務管理器。
systemd是一個系統管理守護進程、工具和庫的集合,用於取代System V初始進程。Systemd的功能是用於集中管理和配置類UNIX系統。
在Linux生態系統中,Systemd被部署到了大多數的標准Linux發行版中,只有為數不多的幾個發行版尚未部署。
2 准備
os:redhat7.0
systemctl –version : systemd 208
weblogic version:12
3 將程序設置成系統服務
3.1 編寫系統服務文件
# vi /etc/systemd/system/myapp.service
# note 如果/etc/systemd/system/myapp.service有過修改,需要進行更新,執行下面這個命令
# systemctl daemon-reload
# note 查看服務是否被正確識別
# systemctl list-unit-files|grep myapp
[Unit]
# note 服務描述,寫有意義的內容,便於識別
Description=myapp service
[Service]
Type=simple
# note 設置應用的工作目錄
WorkingDirectory=/myapp_path
ExecStart=/myapp_path/startMyApp.sh
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
3.2 查看系統服務文件是否被識別
systemctl list-unit-files|grep myapp
--------------------------
myapp.service disabled
4 編寫程序啟動腳本
# vi /myapp_path/startMyApp.sh
----------------------------------------------------
# note !/bin/sh
# note上面這行很重要,會報203錯誤
# note 最好先cd到程序目錄
cd /myapp_path
#使用java的絕對路徑。如果找不到java可執行程序,也會報203錯誤
/usr/java/jdk1.8/bin/java -jar myapp.jar
啟動腳本設置執行權限
chmod +x myapp.sh
5 測試系統服務
5.1 啟動系統服務
systemctl start myapp.service
5.2 停止系統服務
systemctl stop myapp.service -l
5.3 查看系統服務是否成功啟動
systemctl status myapp.service -l
5.4 可能碰到的203錯誤
systemctl enable myapp.service
systemctl list-unit-files|grep myapp
--------------------------
myapp.service enabled
反向命令:
systemctl disable myapp.service
systemctl list-unit-files|grep myapp
--------------------------
myapp.service disabled
6 查看服務的控制台日志
相當於tail -f。
journalctl -flu myapp.service