linux 后台启动 nodejs http-server
场景:如果通过 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