在Python Twisted中,您可以使用twistd
命令来帮助您完成许多与运行应用程序相关的事情(例如,对其进行守护)。
如何对node.js服务器执行守护进程,使其即使在当前会话关闭后仍可运行?
发布于 2011-02-05 07:47:33
Forever是您问题的答案。
安装
$ curl https://npmjs.org/install.sh | sh
$ npm install forever
# Or to install as a terminal command everywhere:
$ npm install -g forever
用法
从命令行使用
$ forever start server.js
使用来自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();
发布于 2012-08-31 20:03:15
如果您需要您的进程对自身进行守护,而不是永远依赖它-您可以使用守护模块。
$ 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]");
}
请注意,这是一种相当低级的方法。
发布于 2017-02-09 08:55:23
要启动systemd
服务管理器守护进程,请编写一个服务文件。例如,创建一个文件/etc/systemd/system/myservice.service
。
[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文件后更新服务管理器守护进程。
$ systemctl daemon-reload
然后启动正在运行的服务,并使服务在引导时启动。
$ systemctl start myservice
$ systemctl enable myservice
https://stackoverflow.com/questions/4903570
复制相似问题