AWS AMI Linux 上的主管設置

AWS AMI Linux 上的主管設置

我正在努力讓主管工作以確保我的隊列系統始終運行。

以下是我從各種來源拼湊而成的步驟:(以 root 或超級使用者身分執行)

  1. 然:

    # easy_install supervisor
    # echo_supervisord_conf > /etc/supervisord.conf
    # vi supervisord.conf
    
  2. 將以下內容貼到文件末尾:

    command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
    
  3. 然:

    # supervisord -c /etc/supervisord.conf
    # supervisorctl
    supervisor> status
    supervisor>
    

    它不顯示任何內容。

  4. 然:

    # service supervisord reload
    supervisord: unrecognized service
    

答案1

要讓 Supervisord 作為服務運行,您需要一個/etc/init.d/supervisord檔案。我用了https://raw.githubusercontent.com/Supervisor/initscripts/master/redhat-init-equeffelec 使用 mods 來匹配 easy_install 將二進位檔案放置在 ( ) 的路徑/usr/local/bin/並尋找 pid 並/var/run/登入/var/log/

答案2

我只是花了幾個小時在這上面,試圖讓 Supervisor 和 Amazon Linux AMI 正常運作。我所經歷的正是你所提到的症狀。

一些怪癖:

  • 繼續並在任何命令中包含(-c /etc/supervisord.conf或任何您的路徑),並確保每次都從同一用戶運行。supervisordsupervisorctl
  • 在您的 中/etc/supervisord.conf,當您追加指令時,請確保在名稱中加上「program:」前綴,如下所示:

    [program:queue]
    command=/usr/bin/php /path/to/AppName/artisan --env=production --timeout=240 queue:listen
    

完成上述操作後,supervisorctl 終於辨識出佇列進程/程式。

我仍然沒有sudo service supervisor restart認識到主管是一項服務 - 我懷疑這是因為我沒有在一些地方提到的暴發戶腳本。不確定我現在是否需要一個。

我使用的一些調試技術:

  • ps aux | grep super查看它是否正在運行
  • sudo vim 編輯/etc/supervisord.confsudo /usr/local/bin/supervisorctl -c /etc/supervisord.conf然後avail,reloadupdate進行更新(而不是每次編輯 .ebextensions 並推送到 elastic beanstalk)

相關內容