在centos上面開機自啟動某個程序


Systemd 是 Linux 系統工具,用來啟動守護進程,已成為大多數發行版的標准配置。可以通過 systemctl --version 命令來查看使用的版本

常用命令

# 立即啟動一個服務 $ sudo systemctl start apache.service # 立即停止一個服務 $ sudo systemctl stop apache.service # 重啟一個服務 $ sudo systemctl restart apache.service # 殺死一個服務的所有子進程 $ sudo systemctl kill apache.service # 重新加載一個服務的配置文件 $ sudo systemctl reload apache.service # 重載所有修改過的配置文件 $ sudo systemctl daemon-reload # 顯示某個 Unit 的所有底層參數 $ systemctl show httpd.service

Supervisor

Supervisor是是一個用python寫的進程管理程序,不僅僅可以用來管理進程,還可以用來做開機啟動。它有但不限於以下一些功能:

重啟機器后,能夠自啟動。
平時有個方便的進程查看方式。
能夠有個方便的方式重啟進程。

配置方法這里就不做記錄了,不過要注意,默認的配置文件里面會把一些supervisor生成的重要文件放到 /tmp 目錄下面,操作系統可能會把這些文件進行刪除,導致 supervisorctl 命令由於找不到這些以前放到 /tmp 的文件而操作不了已經啟動的supervisor進程。

方法

為了能夠在機器啟動之后自動啟動supervisor,需要把supervisor進程配置進systemd,

步驟:

  1. 進入目錄 /usr/lib/systemd/system/,增加文件 supervisord.service,來使得機器啟動的時候啟動supervisor,文件內容
# supervisord service for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon  [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s  [Install] WantedBy=multi-user.target
  1. 激活開機啟動命令

    systemctl enable supervisord.service
  2. 啟動supervisor進程

    systemctl start supervisord.service
  3. 關閉supervisor進程

    systemctl stop supervisord.service
  4. 如果修改了supervisor.service文件,可以通過reload命令來重新加載配置文件

    systemctl reload supervisord.service

檢查

可以通過 ps 命令可以查看supervisor 是否啟動,並且可以查看supervisor管理的進程是否啟動。


免責聲明!

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



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