使用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环境下运行进程管理工具。那么,下次再见。
请多关照。