【问题标题】:How to start node service automatically?如何自动启动节点服务?
【发布时间】:2015-06-28 16:05:09
【问题描述】:

我已经使用 node js 开发了推送通知服务。为此,我必须每次都手动启动服务。

如何自动启动该服务?例如:如果我登录了,它应该会自动运行。在此先感谢

【问题讨论】:

  • 这不是javascript问题,而是Windows程序调度的问题。
  • 同意。好问题,但可能属于不同的堆栈交换站点,例如超级用户。
  • 自托管应用程序不是很可靠。最好使用heroku或类似的。 :)

标签: node.js


【解决方案1】:

如果需要Windows启动时启动的Windows服务,可以使用sc create命令创建服务。

例如

sc create MyServiceName binpath= "C:\Program Files\nodejs\node.exe C:\somefolder\service.js" start= auto depend= "Tcpip/Afd" DisplayName= "A friendly name for my service"

注意 = 符号后面的空格。

您可以在这里找到更多信息:https://technet.microsoft.com/en-us/library/cc990289.aspx

如果您需要在登录时启动应用程序,您可以使用 regedit.exe 在以下注册表路径中创建一个包含您的命令的 REG_SZ 条目:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

【讨论】:

  • 我收到“服务没有及时响应”错误,这可能是什么问题?
【解决方案2】:

有几种方法可以做到这一点,

创建一个带有 .cmd 扩展名的文件,然后简单地将您在 CMD 提示符上写入的内容添加为该文件的内容以启动服务。

node Path:\service.js 'Assumes path to node.exe is set

右键单击,然后创建此文件的快捷方式并将快捷方式拖到 Startup 文件夹。

开始>>所有程序>>右键启动>>打开

Task Scheduler也可以使用。

现在还存在一些 NPM 模块来管理节点进程。 看看foreverPM2

【讨论】:

  • 感谢 Abdullah,我是 node.js 的新手。是否有任何替代方法来启动服务而不是 *.cmd。如果我将节点服务移动到云服务器(亚马逊)。如何启动此服务?
【解决方案3】:
【解决方案4】:

如果您想将节点应用程序作为服务运行,我猜forever 是您需要在计算机上恶魔化您的应用程序的程序。

我使用它,它是 Nodejs 中事实上的方式,可以在 Windows 启动时启动程序,无需打开 Windows 会话或在启动中放置任何内容或使用任务调度程序。

【讨论】:

    【解决方案5】:

    我在 linux 上永远使用它,它看起来像这里有一个 windows 版本: https://www.npmjs.com/package/forever-win

    您可以使用它在 Windows 上守护您的节点应用程序。

    【讨论】:

    • PM2 是 Forever 的更好替代品
    猜你喜欢
    • 2013-05-09
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2016-11-09
    • 2018-04-05
    • 2020-03-02
    相关资源
    最近更新 更多