Linux使用systemctl設置程序開機自啟動


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

原文地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM