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

33 浏览
0 Comments

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

在Python的Twisted中,你可以使用twistd命令来帮助你处理与运行应用程序相关的多个事项(例如将其守护化)。\n如何将一个node.js服务器守护化,使其能够在当前会话关闭后继续运行?

0
0 Comments

在这种情况下,你应该将额外的参数添加到ExecStart=属性的服务文件中。例如,假设你的服务器需要使用端口号作为参数,你可以按照下面的方式进行配置:

[Unit]

Description=myservice-description

After=network.target

[Service]

ExecStart=/opt/myservice-location/src/node/server.js --port=8080

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

ExecStart=属性中,添加了--port=8080作为服务器启动的额外参数。你可以根据你的需求添加任何额外的参数。记得在修改myservice.service文件后更新服务管理器守护进程。

$ systemctl daemon-reload

然后,启动服务并将其设置为开机自启动。

$ systemctl start myservice
$ systemctl enable myservice

这样,你的Node.js服务器将以守护进程的方式启动,并使用指定的额外参数进行配置。

0
0 Comments

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

如果您需要使进程自行守护,而不依赖于 forever,您可以使用 daemonize 模块。

首先,安装 daemonize2 模块:

$ npm install daemonize2

然后,按照以下示例编写您的服务器文件:

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]");
}

需要注意的是,这是一种较低级的方法。

在 app.js 文件中应该放置什么内容?在我的情况下,它立即退出。

在重新启动时会发生什么?

case 'restart':     daemon.on('stopped', () => {       daemon.start();     });     daemon.stop();     break;

以上是解决该问题的方法。

0
0 Comments

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

问题的原因是用户想要将node.js服务器作为守护进程启动,以便在计算机重启后自动重新启动服务器。

解决方法是使用Forever工具。用户可以通过以下步骤安装Forever:

1. 打开终端并执行以下命令:

$ curl https://npmjs.org/install.sh | sh

2. 安装Forever:

$ npm install forever

或者如果想要在全局范围内使用Forever的命令,可以执行以下命令:

$ npm install -g forever

使用Forever的方法有两种:

1. 通过命令行使用Forever:

$ forever start server.js

2. 在Node.js中使用Forever的实例:

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

需要注意的是,如果想要在计算机重启后仍然自动启动服务器,需要将`forever start server.js`添加到启动脚本(例如`rc.local`)中。

另外,一些用户建议使用pm2工具代替Forever。他们认为pm2在负载均衡方面表现更好。以下是使用pm2启动服务器的示例命令:

pm2 start app.js -i 0 --name "myapp"

以上就是如何将node.js服务器作为守护进程启动的解决方法。希望对你有帮助!

0