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
環境で稼働させている必要性を感じないからです。 それではまた。
よろしくお願いします。