Node.js 以执事的身份运行hapijs
如何在Linux机器上作为服务器deamon运行hapijs?现在,我正在使用主页上的Node.js 以执事的身份运行hapijs,node.js,hapijs,Node.js,Hapijs,如何在Linux机器上作为服务器deamon运行hapijs?现在,我正在使用主页上的node index.js命令将其作为开发用户进程运行,但从长远来看,它应该是www-data或任何其他运行该进程的用户。如果您想在不使用任何额外工具的情况下将node作为守护进程运行,可以使用nohup: nohup node index.js& 但是,以下工具可以做到这一点,并且还具有一些其他真正有用的功能,如退出时自动重新启动、日志重定向以及在PM2情况下的群集: PM2: 永远: 如果您希望在机器启动/
node index.js
命令将其作为开发用户进程运行,但从长远来看,它应该是www-data
或任何其他运行该进程的用户。如果您想在不使用任何额外工具的情况下将node作为守护进程运行,可以使用nohup:
nohup node index.js&
但是,以下工具可以做到这一点,并且还具有一些其他真正有用的功能,如退出时自动重新启动、日志重定向以及在PM2情况下的群集:
PM2:
永远:
如果您希望在机器启动/重新启动时启动服务,可以使用Upstart(在ubuntu上)或System-V:
要以与登录用户不同的用户身份运行,请执行以下操作:
sudo-u someone node index.js
请注意,以上任何一个都不是hapi特定的,而是适用于任何Node.js应用程序。如果您想作为守护进程运行节点,而不需要任何额外工具,则可以使用nohup:
nohup node index.js&
但是,以下工具可以做到这一点,并且还具有一些其他真正有用的功能,如退出时自动重新启动、日志重定向以及在PM2情况下的群集:
PM2:
永远:
如果您希望在机器启动/重新启动时启动服务,可以使用Upstart(在ubuntu上)或System-V:
要以与登录用户不同的用户身份运行,请执行以下操作:
sudo-u someone node index.js
请注意,以上所有内容都不是特定于hapi的,而是适用于任何Node.js应用程序。我使用supervisord,它工作得很好 简而言之,您必须配置supervisord以启动hapijs应用程序。此外,您需要配置nginx或apache以将代理请求反向发送到您的hapijs应用程序
您可以在上找到有关设置的详细说明。我使用supervisord,它工作得很好 简而言之,您必须配置supervisord以启动hapijs应用程序。此外,您需要配置nginx或apache以将代理请求反向发送到您的hapijs应用程序
您可以在PM2上找到有关设置的详细说明,PM2是最好的选择。它从本地开发扩展到生产,没有问题 第一步:
npm install -g pm2
pm2 start index.js
-g
标志仅用于全局安装,因此可作为系统命令使用
第二步:
npm install -g pm2
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环境中也非常有效,因为您可以按名称调用进程。最后,开箱即用,它可以做原木旋转和其他一些很棒的事情,即使事情变得越来越糟,也能让你继续前进。应用程序也会在崩溃时自动重启(obv可配置)
附加配置允许PM2监视磁盘上的文件,并在文件更改时重新启动应用程序。这对于开发来说是非常好的,因为您可以编写代码并保存文件,并且您正在HapiJS中构建的API将简单地重新启动,并且您的更改是实时的。PM2是最好的选择。它从本地开发扩展到生产,没有问题 第一步:
npm install -g pm2
pm2 start index.js
-g
标志仅用于全局安装,因此可作为系统命令使用
第二步:
npm install -g pm2
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环境中也非常有效,因为您可以按名称调用进程。最后,开箱即用,它可以做原木旋转和其他一些很棒的事情,即使事情变得越来越糟,也能让你继续前进。应用程序也会在崩溃时自动重启(obv可配置)
附加配置允许PM2监视磁盘上的文件,并在文件更改时重新启动应用程序。这对于开发来说是非常好的,因为您可以编写代码并保存文件,并且您正在HapiJS中构建的API将简单地重新启动,并且您的更改是实时的。在您没有明确要求的情况下建议一个工具,感觉很奇怪。取消流程并在后台运行是一个不需要新工具的选项,但无论如何,我建议Docker对应用程序进行本地化,让Docker处理所有事情。Docker内置了几个功能,即使它不仅仅用于创建守护进程(它可以做的更多),您也可以使用它的restart='always'功能来保持进程运行
希望这能有所帮助。当你没有明确要求一个工具时,建议一个工具感觉很奇怪。取消流程并在后台运行是一个不需要新工具的选项,但无论如何,我建议Docker对应用程序进行本地化,让Docker处理所有事情。Docker内置了几个功能,即使它不仅仅用于创建守护进程(它可以做的更多),您也可以使用它的restart='always'功能来保持进程运行 希望有帮助