systemctl 添加自啟服務 Supervisor 在ubuntu系統下添加自啟動


  使用supervisor管理一些進程很方便,但是最近由於linux打補丁需要重啟,為了系統重啟后這些進程也能正常啟動,supervisor的自啟動就很關鍵了。

  Systemd 的設計目標是,為系統的啟動和管理提供一套完整的解決方案。

  根據 Linux 慣例,字母d是守護進程(daemon)的縮寫。 Systemd 這個名字的含義,就是它要守護整個系統。使用了 Systemd,就不需要再用init了。Systemd 取代了initd,成為系統的第一個進程(PID 等於 1),其他進程都是它的子進程。Systemd 的優點是功能強大,使用方便,缺點是體系龐大,非常復雜

 

下面介紹我使用systemd來添加supervisor的開機自啟服務。

1、在/lib/systemd/system/中添加supervisord.service文件

[Unit]     # 通常是第一個區塊,定義Unit元數據信息以及與其他服務的依賴關系

Description=Supervisord Service     # 簡短描述

 

[Service] # Service,只有 Service 類型的 Unit 才有這個區塊

Restart=on-failure     # 定義重啟方式: always(總是重啟)、on-failure(發生意外退出就重啟)

RestartSec=20s     # 自動重啟當前服務間隔的秒數

User=root

ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisord.conf     # 啟動某個服務的具體命令

 

[Install]    # 通常是配置文件最后一個區塊,定義服務如何啟動以及是否開機啟動

WantedBy=multi-user.target     # 指定一個或多個Target 

 

2、執行以下命令

# 重載所有修改過的配置文件

sudo systemctl daemon-reload

# 如果配置文件里面設置了開機啟動,systemctl enable命令相當於激活開機啟動

sudo systemctl enable supervisord.service

# 啟動supervisor

sudo systemctl start supervisord.service

 

3、然后重啟便能看見supervisor能夠自啟動

 # 重啟系統【請確定服務器沒有重要程序在運行】

sudo systemctl reboot

# 查看supervisor server運行狀態

sudo systemctl status supervisord.service  

 

4、問題

開始我的ExecStart=/usr/local/bin/supervisord -n -c /etc/supervisord.conf 命令中,我沒有增加-n參數,因為平時手動啟動supervisor沒有使用該參數,然后重啟服務器后發現supervisor沒有成功自啟。

通過supervisord -help 查看到-n參數解釋為:nodaemon -- run in the foreground (same as 'nodaemon=true' in config file)Nodaemon——運行在前台(與配置文件中的' Nodaemon =true'相同)

 


免責聲明!

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



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