使用 Supervisor 管理 Umami 進程
你好,我是無能。
Umami官方推薦使用pm2進行進程管理,但是為了更簡單地,我想使用歷史悠久的Supervisor來管理Umami的進程。
什麼是 Supervisor
可以將進程守護化,並輕鬆地在*.conf中設定崩潰時的日誌文件。
雖然一度開發停止了,但由於Systemd Free運動又重新獲得了一些關注,並且可以將原本在其他init下運行的進程通過Supervisor進行守護化管理。
因為已經安裝了,所以省略安裝方法。
設定
創建設定文件作為umami.conf。
sudo vim /etc/supervisor/conf.d/umami.conf
我寫了以下內容。
[program`umami]
command=npm start
directory=/var/www/html/umami ; 應用程式的目錄
autostart=true ; 伺服器啟動時自動啟動進程
autorestart=true ; 進程結束時自動重啟
stderr_logfile=/var/log/umami.err.log ; 標準錯誤日誌文件的位置
stderr_logfile_maxbytes=1MB ; 日誌文件的最大文件大小
stdout_logfile=/var/log/umami.out.log ; 標準輸出日誌文件的位置
stdout_logfile_maxbytes=1MB ; 日誌文件的最大文件大小
environment=DATABASE_URL="YourDB",APP_SECRET="YourSecret",PORT="YourPort",HOSTNAME="YourHost" ;
user=test_user ; 執行用戶
事到如今才說,但是本來應該放在/var/www/umami的啊。。。
執行
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start umami
sudo supervisorctl status umami
如果這樣做的話
umami RUNNING pid 801, uptime 0`19`12
如果顯示上述內容,就表示正常運行。如果失敗了
view /var/log/umami.err.log
view /var/log/umami.out.log
來確認無法啟動的原因。
Supervisor 很好用
僅用*.conf文件就能輕鬆管理,這非常好。
儘管pm2也能顯示內存使用率,但我對未來npm相關的庫依賴感到不安,所以我個人更喜歡像supervisord這樣簡單的工具。
而且,我認為沒有必要特意在JavaScript環境中運行進程管理。那麼,下次再見。
請多關照。