Nodejs如何以守护进程运行啊?

Nodejs如何以守护进程运行啊?

<p>一般是开一个ssh <br/> 然后: </p>

<pre><code>node t.js
</code></pre>

<p>如果这个ssh关闭,node也关闭了 <br/> 如何让node t.js以守护进程运行啊???</p>

13 回复

要在Linux系统中将Node.js应用作为守护进程运行,可以使用nohup命令或者一些专门的守护进程管理工具如pm2。这里分别介绍这两种方法。

使用 nohup

nohup 是一个简单的命令行工具,用于使进程在用户退出登录后继续运行。这种方法简单直接,但功能有限。

示例代码

  1. 在SSH会话中输入以下命令:
nohup node t.js &

这将启动t.js脚本,并使其在后台运行。即使你关闭SSH会话,进程也会继续运行。

  1. 查看输出:

默认情况下,nohup会将输出重定向到nohup.out文件。如果你想改变输出文件的位置或名称,可以在命令后面添加> output.log 2>&1来指定。

nohup node t.js > output.log 2>&1 &

使用 pm2

pm2是一个更强大的进程管理器,支持负载均衡、自动重启、日志管理和更多高级功能。

安装 pm2

首先,你需要全局安装pm2

npm install -g pm2

启动应用

使用pm2 start命令启动你的Node.js应用:

pm2 start t.js

设置为守护进程

pm2默认就会将应用设置为守护进程模式,因此不需要额外配置。

查看状态

你可以通过以下命令查看应用的状态:

pm2 list

停止应用

如果你想停止应用,可以使用:

pm2 stop t.js

重启应用

要重启应用,使用:

pm2 restart t.js

总结

  • nohup:适用于简单的后台运行需求。
  • pm2:适合需要更多管理和监控功能的生产环境。

希望这些信息对你有帮助!


nohup node 1 &

后台进程。windows可以变成一个服务。

个人比较推崇使用screen

1.forever 2.node t.js &

linux下可以试试upstart

nohup node app.js &

之前我在小田那里得到了一个更好的方法,这也是Joyent官方所推荐的:

var cluster = require('cluster');
if (cluster.isMaster) {
  //Fork a worker to run the main program
  for (var i = 0; i < 2; i++) var worker = cluster.fork();
} else {
  //Run main program
  require('./app.js');
  console.log('worker is running');
}

cluster.on(‘death’, function(worker) { //If the worker died, fork a new worker console.log(‘worker ’ + worker.pid + ’ died. restart…’); cluster.fork(); });

这个是我的MoeStream的保护进程,我加了一些注释,以便大家使用。

谢谢WillWen和其它朋友,我暂时先用:
nohup node 1.js > 1.log &

我也是使用 nohup node 1.js > 1.log & 这种方式 参考:http://www.iblue.cc/2012/02/如何提高nodejs程序的稳定性/

可以使用forever吧。

const cp = require('child_process');
const child = cp.spawn('node', [__dirname + '/child.js'], { detached: true, stdio: 'ignore' });
process.exit(0);

要让 Node.js 应用程序在后台以守护进程的方式运行,可以使用 nohup 命令或者一些专门的工具如 pm2。这里介绍两种方法:

方法一:使用 nohup

nohup 是一个简单的命令行工具,可以让进程忽略挂起(SIGHUP)信号,从而在用户退出 SSH 会话后继续运行。

示例步骤:

  1. 在终端中执行以下命令:

    nohup node t.js &
    
  2. 这样即使你断开了 SSH 连接,t.js 进程仍然会继续运行。

  3. 输出会被重定向到 nohup.out 文件中,除非你指定了其他输出文件。

示例代码:

# 运行 Node.js 应用作为守护进程
nohup node t.js &

方法二:使用 pm2

pm2 是一个更高级的进程管理器,支持更多功能,如自动重启、负载均衡等。

安装 pm2:

npm install -g pm2

启动应用作为守护进程:

pm2 start t.js

保存配置以便以后启动时使用:

pm2 save

查看应用状态:

pm2 list

使用 pm2 的优点包括:

  • 自动重启:当你的应用崩溃或异常退出时,pm2 可以自动重启它。
  • 负载均衡pm2 可以管理多个实例来分担负载。
  • 日志管理:自动处理日志文件的滚动更新。

这两种方法都可以让你的 Node.js 应用程序在后台持久运行,但推荐使用 pm2 因为其提供更多便利的功能和更好的管理体验。

回到顶部