以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身份启动