Node.js 以执事的身份运行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: 永远: 如果您希望在机器启动/

如何在Linux机器上作为服务器deamon运行hapijs?现在,我正在使用主页上的
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'功能来保持进程运行

希望有帮助