首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将node.js服务器作为守护进程启动?

如何将node.js服务器作为守护进程启动?
EN

Stack Overflow用户
提问于 2011-02-05 06:28:42
回答 8查看 99.4K关注 0票数 91

在Python Twisted中,您可以使用twistd命令来帮助您完成许多与运行应用程序相关的事情(例如,对其进行守护)。

如何对node.js服务器执行守护进程,使其即使在当前会话关闭后仍可运行?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-02-05 07:47:33

Forever是您问题的答案。

安装

代码语言:javascript
复制
$ curl https://npmjs.org/install.sh | sh
$ npm install forever
# Or to install as a terminal command everywhere:
$ npm install -g forever

用法

从命令行使用

代码语言:javascript
复制
$ forever start server.js

使用来自Node.js的Forever实例

代码语言:javascript
复制
var forever = require('forever');

  var child = new forever.Forever('your-filename.js', {
    max: 3,
    silent: true,
    args: []
  });

  child.on('exit', this.callback);
  child.start();
票数 97
EN

Stack Overflow用户

发布于 2012-08-31 20:03:15

如果您需要您的进程对自身进行守护,而不是永远依赖它-您可以使用守护模块。

代码语言:javascript
复制
$ npm install daemonize2

然后编写您的服务器文件,如示例所示:

代码语言:javascript
复制
var daemon = require("daemonize2").setup({
    main: "app.js",
    name: "sampleapp",
    pidfile: "sampleapp.pid"
});

switch (process.argv[2]) {

    case "start":
        daemon.start();
        break;

    case "stop":
        daemon.stop();
        break;

    default:
        console.log("Usage: [start|stop]");
}

请注意,这是一种相当低级的方法。

票数 47
EN

Stack Overflow用户

发布于 2017-02-09 08:55:23

要启动systemd服务管理器守护进程,请编写一个服务文件。例如,创建一个文件/etc/systemd/system/myservice.service

代码语言:javascript
复制
[Unit]
Description=myservice-description
After=network.target

[Service]
ExecStart=/opt/myservice-location/src/node/server.js --args=here
Restart=always
User=me
Group=group
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/opt/myservice-location

[Install]
WantedBy=multi-user.target

记得在每次更改myservice.service文件后更新服务管理器守护进程。

代码语言:javascript
复制
$ systemctl daemon-reload

然后启动正在运行的服务,并使服务在引导时启动。

代码语言:javascript
复制
$ systemctl start myservice
$ systemctl enable myservice
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4903570

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档