Nodejs项目在Xshell连接阿里云CentOS运行后,关闭Xshell项目就停了,怎么解决?

Nodejs项目在Xshell连接阿里云CentOS运行后,关闭Xshell项目就停了,怎么解决?

6 回复

当您使用 Xshell 连接到阿里云 CentOS 服务器并运行 Node.js 项目时,如果关闭 Xshell 会话,Node.js 项目也会随之停止。这是因为 Xshell 会话关闭时,与之相关的所有进程都会被终止。为了解决这个问题,您可以采取以下几种方法:

方法一:使用 nohup 命令

nohup 命令可以让程序在后台运行,并且不受终端关闭的影响。

  1. 打开 Xshell 并连接到您的 CentOS 服务器。

  2. 使用以下命令启动您的 Node.js 应用:

    nohup node your-app.js &
    

    这条命令会在后台运行您的 Node.js 应用,并将输出重定向到一个名为 nohup.out 的文件中。

  3. 您可以通过以下命令查看日志文件:

    tail -f nohup.out
    

方法二:使用 screentmux

screentmux 是两个强大的终端复用工具,可以创建独立的会话,即使断开连接也不会影响正在运行的进程。

使用 screen:

  1. 安装 screen(如果尚未安装):
    sudo yum install screen
    
  2. 创建一个新的 screen 会话:
    screen -S mysession
    
  3. screen 会话中运行您的 Node.js 应用:
    node your-app.js
    
  4. Ctrl+A 然后按 D 键,可以暂时分离当前会话。
  5. 要重新连接到该会话,使用:
    screen -r mysession
    

使用 tmux:

  1. 安装 tmux(如果尚未安装):
    sudo yum install tmux
    
  2. 创建一个新的 tmux 会话:
    tmux new -s mysession
    
  3. tmux 会话中运行您的 Node.js 应用:
    node your-app.js
    
  4. Ctrl+B 然后按 D 键,可以暂时分离当前会话。
  5. 要重新连接到该会话,使用:
    tmux attach -t mysession
    

以上两种方法都可以确保您的 Node.js 应用在 Xshell 关闭后继续运行。选择适合您的方式即可。


谢谢,我看下

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 后仍然运行。

回到顶部