场景:如果通过 ssh 远程连接到 linux 服务器时, 通过 NodeJS http-server 启动一个服务后,如果这时候断开远程时,当前终端会关闭,这时候刚才起的服务也就没了。

linux 服务器 centos 解决方法

1.通过 screen 工具多开终端

通过多开终端的方式可以解决问题,即不在远程连接的终端中启动服务, 而是再开一个终端进行启动服务。然后再切回远程的终端里。断开远程终端就好了,具体方法如下。

首先执行 yum install screen 安装 screen 命令

在项目文件夹下输入 screen -S httpserver

输入完这个命令之后,就已经进入 screen 的一个终端去了, 在这个终端里面输入http-server ./ -p 端口 命令

最后按住 ctrl+a+d 离开当前终端, 就是后台运行了

2.通过 pm2 运行 http-server

一般情况下我们 http-server ./ -p 端口 直接运行启动的。如果使用 pm2 的话,需要找到 http-server 这命令的真实地址。非全局安装一般情况下在 node-modules/bin 目录下,如果
是全局安装,就是全局下找找看(npm --help 会输出 npm 所在路径。在这个路径附近找找即可找到)。(我这里是 通过 nvs node 包版本管理器,安装的 node 并全局安装的 pm2, 我的 http-server 命令所在路径为: /root/.nvs/node/17.8.0/x64/bin/http-server)。

具体步骤如下:

#全局安装 pm2
npm install pm2 -g

# 通过 pm2 运行 http-server 启动服务,并给服务起个名字叫 n-h-s
pm2 start '/root/.nvs/node/17.8.0/x64/bin/http-server ./ -p 80' --name n-h-s

# 可以查看日志,也会输出日志存放位置
pm2 log 

Linux screen命令
centos的screen使用
pm2

版权声明:本文为暗恋桃埖源原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/taohuaya/p/16091433.html