使用 Supervisor 管理 Umami 進程

2 min

language: ja bn en es hi pt ru zh-cn zh-tw

你好,我是無能。
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環境中運行進程管理。那麼,下次再見。
請多關照。

Related Posts