使用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