无守护进程

一般规则是你不应以 root 身份运行 node,然而,只有 root 可以绑定小于 1024 的端口。这就是 authbind 的用武之地。 Authbind 允许非 root 用户绑定小于 1024 的端口,替换 %user% 将为运行的用户 pm2

sudo apt-get install authbind
sudo touch /etc/authbind/byport/80
sudo chown %user% /etc/authbind/byport/80
sudo chmod 755 /etc/authbind/byport/80

你还应该为运行 pm2 配置文件的用户添加一个别名。例如 ~/.bashrc~/.zshrc(注意你将需要运行source ~/.bashrcsource ~/.zshrc):

alias pm2='authbind --deep pm2'

最后确保pm2更新为authbind

authbind --deep pm2 update

或者只是pm2 update将别名添加到用户的个人资料中。

现在您可以使用 PM2 启动应用程序,无需 root 即可绑定到端口 80

同一台服务器上有多个 PM2

客户端和守护进程通过 $HOME/.pm2/pub.sock$HOME/.pm2/rpc.sock 中可用的socket进行通信。

你可以通过更改PM2_HOME环境变量来启动多个 PM2 实例。

PM2_HOME='.pm2' pm2 start echo.js --name="echo-node-1"
PM2_HOME='.pm3' pm2 start echo.js --name="echo-node-2"

这将启动两个不同的 PM2 实例。要列出每个不同实例管理的进程,请执行以下操作:

PM2_HOME='.pm2' pm2 list
PM2_HOME='.pm3' pm2 list

在no-deamon中启动PM2

确保在以非守护进程模式 ( pm2 kill)启动 PM2 之前杀死任何 PM2 实例。

启动 PM2 而不进行守护进程:

pm2-runtimePM2 安装时还默认安装了 CLI ,它是 Node.js 二进制文件的直接替代品。

最后更新于