UmamiをSupervisorでプロセス管理する
2 min read
こんにちは、無能です。
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環境
で稼働させている必要性を感じないからです。 それではまた。
よろしくお願いします。