如何在ubuntu中使用supervisor启动pm2进程

问题描述 投票:0回答:1

我们有一个由 pm2 进程管理器启动 Nodejs 程序的设置。 pm2 进程本身已启动并由主管进程监控。

我的会议如下所示:

[program:node-service]
process_name=%(program_name)s
command=pm2 start /home/deploy/nodeJS/app.js
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/home/deploy/logs/appjs.log

预期结果

Supervisor 启动 PM2 Deamon。 PM2启动节点进程。

Command: ps aux | grep pm2

root       664  0.8  0.2 1436832 70992 ?       Ssl  13:57   0:02 PM2 v5.2.0: God Daemon (/etc/.pm2)

Command: ps aux | grep node

root     20893  0.5  0.2 1309368 70692 ?       Ssl  14:02   0:01 node /home/deploy/nodeJS/app.js

实际结果:

Supervisor 启动 PM2 守护进程。 PM2启动节点进程。 Supervisor 或 pm2 正在尝试启动 再次节点处理。

Command: ps aux | grep pm2

root       664  0.8  0.2 1436832 70992 ?       Ssl  13:57   0:02 PM2 v5.2.0: God Daemon (/etc/.pm2)


root     21259 61.0  0.2 1164964 74040 ?       Rl   14:02   0:00 node /usr/bin/pm2 start /home/deploy/nodeJS/app.js

Command: ps aux | grep node

root     20893  0.5  0.2 1309368 70692 ?       Ssl  14:02   0:01 node /home/deploy/nodeJS/app.js

我无法弄清楚为什么它试图创建另一个进程“node /usr/bin/pm2 start /home/deploy/nodeJS/app.js”已启动。

node.js ubuntu pm2 supervisord
1个回答
0
投票

你能解决这个问题吗?如果没有,那是因为主管不知道在哪里可以找到所有这些二进制文件。简而言之,在调用二进制文件之前,您需要先加载系统路径环境。

command=/bin/bash -c "source /root/.bashrc && pm2 start /home/deploy/nodeJS/app.js"

并且在您的 .bashrc 文件中,您必须导出这些二进制文件的路径

EXPORT PATH=/opt/cpanel/ea-nodejs18/bin/:$PATH

/opt/cpanel/ea-nodes18/bin/:$PATH 是我的节点二进制文件的安装位置,包括 pm2。如果您不确定如何找到它,只需键入以下命令,它应该为您提供路径并在 .bashrc 中使用该路径

where pm2

希望这有帮助。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.