相关疑难解决方法(0)

如何将node.js应用程序作为后台服务运行?

由于这篇文章多年来引起了很多关注,我在本文的最后列出了每个平台的顶级解决方案.


原帖:

我希望我的node.js服务器在后台运行,即:当我关闭终端时,我希望我的服务器继续运行.我已经用Google搜索了这个教程,但它没有按预期工作.因此,我没有使用该守护进程脚本,而是认为我只使用了输出重定向(2>&1 >> file部分),但这也没有退出 - 我的终端中出现一个空行,就像是在等待输出/错误.

我也尝试将该过程放在后台,但是一旦我关闭终端,该过程也会被杀死.

那么当我关闭本地计算机时,如何让它保持运行?


最佳方案:

daemon background process node.js server

457
推荐指数
15
解决办法
50万
查看次数

启动时自动启动node.js服务器

任何node.js专家都可以告诉我如何配置节点JS以在我的机器启动时自动启动服务器吗?我在Windows上

node.js

72
推荐指数
5
解决办法
9万
查看次数

Node.js设置便于部署和更新

我们目前正在为一个客户开发一个网站(Apache下的TYPO3),该网站由node.js/socket.io应用程序提供支持,该应用程序为CMS提供的内容提供实时更新.

由于这是我们的第一个node.js项目,因此我在"完美设置"方面没有任何最佳实践,因此我花了一些时间研究部署技术.

我仍然有几个问题可以实现一个良好的设置:

  1. 易于部署客户.这一点非常重要,因为我们的网站将整合到他们的"实时"TYPO3安装中,该安装服务于大量网站,并且运行在不是由客户管理的服务器上,而是另一个(集中式)组织,它支持呼叫和服务器更改.进程缓慢.

  2. 应该很容易更新.如上所述,请求重新启动并进行服务器更改是一个缓慢的过程,因此理想情况下,节点安装应该在收到推送到实时安装的更改时重新启动/更新git.

部署

普遍的共识似乎是使用forever,当涉及到部署节点的应用程序,防止他们逃跑.我已经测试了forever,并且在npm install forever -g(全局)安装时似乎工作正常.这需要外部协助来全局安装在实时环境中,所以我更喜欢从应用程序的node_modules目录运行它,但是我无法创建一个可靠的包装器来执行此操作.

此外,forever工作正常,但必须手动启动.什么是确保它在服务器启动时启动并保持运行的最佳方法?

  • 一个简单的init.d脚本?
  • 写一个看门狗包装?
  • 一个TYPO3调度程序任务,检查forever状态?

快速开发/重新启动更新

我们目前仍处于项目的开发阶段,每次我对node.js应用程序进行更改时,我都会手动重启nodeforever.这有效,但远非理想.有几个较小的npm模块可以检查文件修改并node在检测到的更改时重新启动,例如:

有没有人有这些经验?

更新:你为什么不只使用群集?

集群模块通过提供类似的功能重载机制,但不与节点0.5+工作.替换它的核心群集模块(节点0.6+)没有所有这些功能,只提供群集.而这反过来又不适合socket.io.至少没有使用Redis(这对我们来说是一个问题,因为我们不能强迫客户使用另一个先决条件服务).

-

显然,我正在尝试找到最稳定的解决方案,它将更新重启器与forever将项目交给客户之前结合起来,我真的希望有人能够生成经过验证的技术组合.

deployment updates node.js

56
推荐指数
3
解决办法
2万
查看次数

在Linux服务器上部署node.js应用程序的位置?

我在Linux服务器上运行4个独立的Node.js应用程序,这些应用程序具有不同的端口和前面的代理.

由于我(现在)是服务器中唯一的用户,因此无论我放置应用程序的位置以及如何运行它们都无关紧要.目前我的应用程序留在我家目录(下~/app1/,~/app2/等).

所以我的问题是:我应该在哪里放置应用程序,以便它们可以在多个用户之间共享?有类似的标准地方/var/www吗?

deployment node.js

29
推荐指数
2
解决办法
2万
查看次数

标签 统计

node.js ×4

deployment ×2

background ×1

daemon ×1

process ×1

server ×1

updates ×1