如何使用nohup命令在Linux中运行Node.js程序
Linux中用nohup使Node.js程序后台持续运行(脱离终端)。步骤:进入项目目录,执行nohupnpmrunstart>nohup.out2>&1&;查看输出用tail-fnohup.out;停止进程先用psaux查PID再kill。
在 Linux 环境中运行 Node.js 程序时,一个常见的痛点就是:一关终端或断开 SSH 连接,程序就跟着停了。很多新手踩过这个坑,其实解决方案很简单——nohup 命令就是专门为这类场景设计的。它能让你的 Node.js 进程脱离终端会话,在后台安安稳稳地跑下去。下面把具体操作拆解成几个步骤,每一步都有实例,跟着做就能搞定。

打开终端,这步不必多说。
切换到你的 Node.js 项目目录。比如项目放在
/home/username/my-nodejs-app,直接执行:cd /home/username/my-nodejs-app确保项目里有
package.json文件,并且已经定义了一个启动脚本,通常叫start。结构大致是这样:{"name": "my-nodejs-app","version": "1.0.0","scripts": {"start": "node app.js"},"dependencies": {// ...}}这里
app.js就是你的主入口文件,按实际文件名调整就行。关键一步:用
nohup启动程序。把换成你在package.json里定义的脚本名(默认就是start)。下面的命令会把程序放到后台运行,同时把标准输出和错误输出都重定向到nohup.out文件里:nohup npm run> nohup.out 2>&1 & 举个例子,如果你的脚本名就是
start,那么命令就是:nohup npm run start > nohup.out 2>&1 &执行完上面这条命令之后,你就可以放心关闭终端或断开 SSH 连接了。程序会继续在后台运行,不会因为会话结束而终止。
如果想查看程序的实时输出,可以用
tail命令监控nohup.out文件:tail -f nohup.out如果需要手动停掉这个后台进程,先用
ps加上grep找到对应的进程 ID(PID),然后kill掉。例如:ps aux | grep app.jskill把
替换成你查到的实际进程号即可。
以上就是用 nohup 让 Node.js 程序在后台持久化运行的完整流程。操作不复杂,但很实用,真正用起来之后就再也不怕终端一关程序就丢了。


































