运行hapi js作为守护进程

时间:2015-03-26 21:29:48

标签: node.js hapijs

如何在Linux机器上运行hapijs作为服务器守护程序?现在,我正在使用主页的node index.js命令将其作为开发用户进程运行,但从长远来看,它应该是www-data或运行该进程的其他用户。< / p>

4 个答案:

答案 0 :(得分:4)

如果你想在没有任何额外工具的情况下将节点作为守护进程运行,你可以使用nohup:

nohup node index.js &

但是,以下工具可以执行此操作,还具有一些其他非常有用的功能,例如退出时自动重启,日志重定向以及PM2的情况下,群集:

PM2:https://github.com/Unitech/pm2

永远:https://github.com/foreverjs/forever

如果您希望在机器启动/重新启动时启动服务,可以使用Upstart(在ubuntu上)或System-V上:

https://www.digitalocean.com/community/tutorials/how-to-write-a-linux-daemon-with-node-js-on-a-vps

以不同的用户身份运行您登录的用户:

sudo -u somebody node index.js

请注意,上述内容均不适用于hapi,而是适用于任何Node.js应用。

答案 1 :(得分:2)

PM2是最好的选择。它从地方发展到生产都没有问题。

第一步:

npm install -g pm2

-g标志仅用于全局安装,因此可用作系统命令。

第二步:

pm2 start index.js

start命令只是替换node index.js它在后台运行节点进程但是作为守护进程。

PM2实际使用案例

cd projects/my-app
npm install -g pm2
npm install
NODE_ENV=development pm2 start index.js -n my-app

pm2 stop my-app
pm2 restart my-app
pm2 status
pm2 logs my-app
pm2 m

这些应该足以让你前进。关于PM2的好处是它在CI / CD环境中运行良好,因为您可以按名称调用进程。最后开箱即用它可以记录旋转和一些其他很棒的东西,即使东西向南移动也可以让你继续前进。如果应用程序崩溃,它们也会自动重启(显示可配置)。

其他配置允许PM2在磁盘上观看文件并在应用程序更改时重新启动应用程序。这非常适合开发,因为您可以编写代码+保存文件,而您在HapiJS中构建的API将只是重新启动并且您的更改是实时的。

答案 2 :(得分:0)

我使用supervisord,效果很好。

简而言之,您必须配置supervisord以启动您的hapijs应用程序。此外,您需要配置nginx或apache以反转对您的hapijs应用程序的代理请求。

您可以在http://blog.risingstack.com/operating-node-in-production/

找到有关设置的详细说明

答案 3 :(得分:0)

当您没有明确要求提供工具时,建议使用工具会感觉很奇怪。 nohup-ing进程并在后台运行是一个不需要新工具的选项,但是对于它的价值,我建议Docker-izing应用程序并让docker处理所有内容。 Docker内置了几个功能,即使它不仅仅用于创建守护进程(它还有更多功能),您可以使用它的restart ='always'功能来保持进程运行。

希望有所帮助。