linux 設置開機自動啟動應用


  作為一個開發,項目現在一般都是部署在虛擬機上的linux,數據庫也是按照在l虛擬機上的linux,一旦關機了,在開機程序都沒打開,又要一個個去開,很麻煩,所以現在我現在使用supervisor去做一個守護進程,然后項目就托管在supervisor上,然后開機讓supervisor啟動就可以了。

  一般的,很多人會使用單元服務的形式去實現,首先在/etc/systemd/system或/lib/systemd/system目錄(可能需要使用軟連接)下創建一個service文件,如:  

  [Unit]
  Description=Supervisor process control system for UNIX
  Documentation=http://supervisord.org
  After=network.target

  [Service]
  ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
  ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
  ExecReload=/usr/bin/supervisorctl -c /etc/supervisor/supervisord.conf $OPTIONS reload
  KillMode=process
  Restart=on-failure
  RestartSec=50s

  [Install]
  WantedBy=multi-user.target

  然后就可以啟用了:  

    #先看supervisor.service是否已經加到開機啟動
    sudo systemctl is-enabled supervisor.service
    #添加
    sudo systemctl enable supervisor.service
    #驗證
    sudo systemctl is-enabled supervisor.service

  下面介紹的是使用rc.local文件啟動的方式:

  ubuntu
  ubuntu開機自啟有多種方式,我采用下面的方式:  

    # 編輯/etc/rc.local文件,其實/etc/rc.local只是個會在開機時執行的腳本
  sudo vim /etc/rc.local
  # 在exit 0 之前加入以下命令,下面是我的supervisord的啟動命令路徑:/usr/bin/supervisord
  sudo /usr/bin/supervisord
  #保存並退出就可以了。

  

 

  CentOS

  centos當然也可以使用開機執行腳本的方式來啟動,因為在centos7中/etc/rc.d/rc.local的權限被降低了,所以需要賦予其可執行權,如:  

    #因為在centos7中/etc/rc.d/rc.local的權限被降低了,所以需要賦予其可執行權
  sudo chmod +x /etc/rc.d/rc.local
  #打開/etc/rc.d/rc.local,添加啟動項,下面是我的supervisor在centos上的可執行文件路徑
  sudo /bin/supervisord
  #保存並退出就可以了。

  

  關機后在開機,可通過進程程序是否啟動:ps -ef | grep supervisord

  或者查看自己托管在supervisor上的程序是否啟動

 


免責聲明!

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



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