Nodejs项目在Xshell连接阿里云CentOS运行后,关闭Xshell项目就停了,怎么解决?
Nodejs项目在Xshell连接阿里云CentOS运行后,关闭Xshell项目就停了,怎么解决?
6 回复
谢谢,我看下
tmux
用pm2解决了。。。
当您通过 Xshell 连接到阿里云 CentOS 并运行 Node.js 项目时,一旦关闭 Xshell 会话,您的 Node.js 进程也会随之停止。这是因为 Xshell 会话是您进程的终端,一旦关闭,该进程就会被终止。
解决方案
要确保您的 Node.js 应用程序即使在关闭 Xshell 之后也能继续运行,可以使用以下几种方法:
方法1: 使用 nohup
命令
nohup
命令可以让进程在退出终端后继续运行。
nohup node your-app.js &
这将启动您的应用程序,并且即使您关闭 Xshell,它也将继续运行。nohup
输出会被重定向到 nohup.out
文件中,除非您指定了其他输出文件。
方法2: 使用 screen
screen
是一个全屏窗口管理器,允许您创建和管理多个会话,即使您断开连接,这些会话也会保持运行。
首先,安装 screen:
sudo yum install -y screen
然后创建一个新的 screen 会话并运行您的应用:
screen -S mysession
node your-app.js
要从当前会话分离(即关闭 Xshell 而不终止应用),按 Ctrl+A
然后按 D
键。要重新连接到会话,使用命令:
screen -r mysession
方法3: 使用 tmux
tmux
是另一种可以用来处理长时间运行任务的工具,类似于 screen
。
首先,安装 tmux:
sudo yum install -y tmux
创建一个新的 tmux 会话并运行您的应用:
tmux new -s mysession
node your-app.js
按 Ctrl+B
然后按 D
键来分离会话。要重新连接到会话,使用命令:
tmux attach -t mysession
以上任何一种方法都可以帮助您确保 Node.js 应用程序在关闭 Xshell 后仍然运行。