Nodejs如何以守护进程运行啊?
Nodejs如何以守护进程运行啊?
<p>一般是开一个ssh <br/> 然后: </p>
<pre><code>node t.js
</code></pre>
<p>如果这个ssh关闭,node也关闭了 <br/> 如何让node t.js以守护进程运行啊???</p>
要在Linux系统中将Node.js应用作为守护进程运行,可以使用nohup
命令或者一些专门的守护进程管理工具如pm2
。这里分别介绍这两种方法。
使用 nohup
nohup
是一个简单的命令行工具,用于使进程在用户退出登录后继续运行。这种方法简单直接,但功能有限。
示例代码
- 在SSH会话中输入以下命令:
nohup node t.js &
这将启动t.js
脚本,并使其在后台运行。即使你关闭SSH会话,进程也会继续运行。
- 查看输出:
默认情况下,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
之前我在小田那里得到了一个更好的方法,这也是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 会话后继续运行。
示例步骤:
-
在终端中执行以下命令:
nohup node t.js &
-
这样即使你断开了 SSH 连接,
t.js
进程仍然会继续运行。 -
输出会被重定向到
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
因为其提供更多便利的功能和更好的管理体验。