參考資料
- 基本安裝 mac-服務管理-supervisor
異常問題
error: <class ‘socket.error’>, [Errno 13] Permission denied: file: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/socket.py line: 228
// 加上 sudo sudo supervisorctl -c /usr/local/etc/supervisord.ini
Unlinking stale socket /usr/local/var/run/supervisor.sock
find / -name supervisor.sock unlink /***/supervisor.sock // 根據上一步 find中查詢的路徑執行unlink
supervisorctl操作Connection refused
// 配置完應用之後,重新載入配置 sudo supervisorctl -c /usr/local/etc/supervisord.ini supervisorctl> reload
error: <class ‘socket.error’>, [Errno 111] Connection refused: file: /usr/lib64/python2.7/socket.py line: 224
// 檢查supervisord程式 ps aux|grep supervisord
// 結果是supervisord程式不在了,啟動supervisord, supervisorctl的相關命令就可以執行了
不希望開機啟動
// 每次啟動,指定配置檔案 sudo supervisord -c /usr/local/etc/supervisord.ini
supervisord 沒有加上 sudo,supervisorctl即使加上 sudo,也會顯示沒有許可權
➜ supervisor.d supervisord -c /usr/local/etc/supervisord.ini ➜ supervisor.d sudo supervisorctl -c /usr/local/etc/supervisord.ini project1-laravel-queue:project1-laravel-queue_00 BACKOFF unknown error making dispatchers for 'project1-laravel-queue_00': EACCES project1-laravel-queue:project1-laravel-queue_01 BACKOFF unknown error making dispatchers for 'project1-laravel-queue_01': EACCES
最終配置與啟動
// 基本配置檔案
/usr/local/etc/supervisord.ini
// 根據上面檔案最後一行 incldue 新建目錄
mkdir /usr/local/etc/supervisor.d
// 新建日誌檔案,同時修改所屬關係
-rw-r--r-- 1 user1 staff 373 6 8 22:03 lumen-project1.ini
// lumen-project1.ini 內容
[program:project1-laravel-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /Users/user1/sites/project1/artisan queue:work redis --queue=high,default,low --sleep=5 --tries=2 --timeout=60 --daemon
autostart=true
autorestart=true
user=gujinhe
numprocs=2
redirect_stderr=true
stdout_logfile=/var/log/supervisor/project1-queue.log
// 啟動 supervisord
sudo supervisord -c /usr/local/etc/supervisord.ini
// 啟動
sudo supervisorctl -c /usr/local/etc/supervisord.ini
// 正常啟動會看到目前正在執行的各個配置好的程式
➜ supervisor.d sudo supervisorctl -c /usr/local/etc/supervisord.ini
project1-laravel-queue:project1-laravel-queue_00 RUNNING pid 30378, uptime 0:06:43
project1-laravel-queue:project1-laravel-queue_01 RUNNING pid 30377, uptime 0:06:43
supervisor>
// 幫助
supervisor> help
// 錯誤說明:
EACCES:訪問/執行許可權不足
EISDIR:目錄許可權不足,一般可能是日誌許可權問題,需要修改對應所屬和分組;或者資料夾重名等問題
注意事項
- 每次修改event (實現了佇列介面的)最好重啟一次supervisor,否則無法及時生效
- 可以在資料庫表 failed_jobs 中檢視失敗原因,也可以在supervisor中對應的日誌中檢視
本作品採用《CC 協議》,轉載必須註明作者和本文連結