我有一个带有多个节点进程的Nodejs Web应用程序,我多次开始使用pm2 start app.js
。
为了监控这些进程,我使用pm2的pm2 startup ubuntu
命令创建了一个init脚本。然后,在我的应用程序的monit配置文件中,我使用此init脚本作为启动和停止monit的程序命令。然后我对monit配置文件中的两个进程使用check process pm2_1 with pidfile /path/to/node-pidfile
之类的东西。
我希望monit检查这两个进程的pidfiles,当其中一个或两个进程都关闭时,重启这两个进程。所以,这就是my-webapp.monitrc的样子:
check process pm2_1
with pidfile /root/.pm2/pids/proc1-0.pid
start program = "/etc/init.d/pm2-init.sh start"
stop program = "/etc/init.d/pm2-init.sh stop"
check process pm2_2
with pidfile /root/.pm2/pids/proc2-1.pid
start program = "/etc/init.d/pm2-init.sh start"
stop program = "/etc/init.d/pm2-init.sh stop"
问题是,如果其中一个进程关闭,它就可以运行。但如果两个进程都关闭,monit会执行两次启动命令。
有没有办法让检查过程有一个“OR”条件来监控多个不同的pidfiles并只执行一次相同的启动和停止命令?