Supervisor 的配置文件一般位於 /etc/supervisor/conf.d
目錄下。在該目錄中,能夠建立任意數量的配置文件,用來配置 supervisor 如何監控進程。例如,建立一個 laravel-worker.conf
文件啓動和監控 queue:work
進程:php
# [program:x] 配置: # 格式爲「program」單詞,加一個英文冒號,加自定義的程序名稱。如 `[program:foo]`,上下文中可以使用表達式 %(program_name)s 引用程序名稱。 [program:laravel-worker] # 指定進程的命名規則:foo_00,foo_01... process_name=%(program_name)s_%(process_num)02d # command 必須。程序啓動後執行的命令,能夠是絕對命令,也能夠是相對命令(在環境$PATH中搜索可執行文件)。受控的程序自己不該該是守護程序。 command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3 # Supervisor 啓動時自動啓動該程序 autostart=true # 指定進程掛掉時 Supervisor 自動重啓進程 autorestart=true # 指定運行進程使用的用戶,須要 Supervisor 以root用戶運行。使用 setuid 切換用戶,不會啓動shell程序和改變環境變量 user=forge # 運行和監控的進程數量,進程位於laravel-worker組內,指定該值需同時設置process_name包含%(process_num)s numprocs=8 # 將 stderr 錯誤輸出重定向到 stdout 標準輸出 redirect_stderr=true # 將進程的 stdout 標準輸出寫入文件中,設爲NONE不會建立任何日誌文件。 stdout_logfile=/home/forge/app.com/worker.log
配置文件建立完畢後,能夠使用以下命令更新 Supervisor 配置並啓動進程:html
# 重載守護進程的配置文件 sudo supervisorctl reread # 從新加載配置並根據須要添加/刪除,並將從新啓動受影響的程序 sudo supervisorctl update # 啓動指定的程序組 sudo supervisorctl start laravel-worker:*
參考:http://supervisord.org/config...laravel