以pm2作为根启动应用程序

我有一个守护进程,必须在启动时以root身份运行。

我使用pm2来启动其他应用程序,但无法弄清楚它是否能以root身份启动应用程序。 可以这样做吗?

如果不是,我有什么select?

我会build议:

sudo pm2 start index.js 

要么

 pm2 start 'http-server' /var/www -p 80 sudo pm2 startup pm2 save 

要么

 pm2 start 'which http-server' /var/www -p 80 

在你的HTTP端口上启动它

另外,我总是把-i 0放在最后 – 这样可以启动尽可能多的工作进程。 检查这个

启动PM2并不总是必须的。 如果你有PM2作为root并且安装了cli模块,安全性是一个很大的风险。 只有当您在1到1024之间的端口上启动您的应用程序时才需要

如果您只需要守护程序以root身份运行以访问端口号(例如80或443),则authbind 文档build议使用authbind 。 因此,如果您希望用户yourusername有权访问端口80,请运行:

 $ sudo apt-get install authbind $ sudo touch /etc/authbind/byport/80 $ sudo chown yourusername /etc/authbind/byport/80 $ sudo chmod 755 /etc/authbind/byport/80 $ authbind --deep pm2 update 

然后使用authbind --deep pm2而不是authbind --deep pm2 。 该文档build议设置一个别名。

您应该启动pm2作为根(sudo pm2 start app.js),然后您的应用程序将以root身份启动