gpt4 book ai didi

node.js - Compute Engine 和 NodeJS,保持在线

转载 作者:搜寻专家 更新时间:2023-11-01 00:14:50 24 4
gpt4 key购买 nike

我有一个已经用 node.js 和 sails.js 开发的网站在“Compute Engine”上,但要启动它,我必须在浏览器的 SSH 控制台中编写“node app.js”。但是有一个问题(因为我是 Linux 和 Google Cloud 的新手:)),如果我想让我的 Node 应用程序保持在线,SSH 窗口必须打开,如果我关闭,Node 应用程序将终止,如 Ctrl+c .所以打开我的电脑是没有意义的,只是为了有事件窗口。那么,如何在没有 SSH 控制台的情况下让我的 NodeJS 应用程序保持在线状态呢?我知道这个问题对某些人来说是不合逻辑的,但如果你能帮助我,我将不胜感激。谢谢

最佳答案

首先,它与 Compute Engine 和 Node.js 无关。

您提到如果您按 ctrl+c 应用程序将终止这是正确的,因为您在前台 而不是后台 运行您的应用程序。要在后台运行您的应用程序,您可以像这样启动您的应用程序:

node app.js &

或者您可以使用 node app.js 启动然后按 ctrl+z .

但是仅仅将应用程序发送到后台并没有帮助。一旦您断开与 ssh session 的连接,所有启动的程序(后台或前台)都会收到一个 HUP 信号,在 node.js 中您可以处理该信号,但默认为 behaviour is to close :

On non-Windows platforms, the default behaviour of SIGHUP is to terminate node

要忽略 SIGHUP 信号,您可以做的一件事是按如下方式运行您的应用:

nohup node app.js &

如果您这样做,即使您关闭了 ssh session ,您的应用程序仍将继续运行。实现此目的的另一种方法是使用 screen .

这将在早期阶段和开发阶段为您提供帮助,但我不建议将这些东西都用于生产。例如:如果您的应用程序崩溃,它应该重新启动。推荐的方法是使用操作系统自带的服务管理器:upstart、systemd、init 等等。

关于node.js - Compute Engine 和 NodeJS,保持在线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29737751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com