在GoDaddy VPS上部署React应用:如何让服务持续运行?
让React应用在SSH断开后持续运行的方法
方法1:用nohup快速实现后台运行
直接把启动命令改成下面这样,就能让服务在后台跑,关闭SSH也不会断:
nohup npm start &
nohup会让进程忽略终端挂断的信号,&把进程放到后台运行- 默认日志会存在当前目录的
nohup.out里,也可以自定义日志文件:
nohup npm start > react-app.log 2>&1 &
- 要停服务的话,先找进程ID:
ps aux | grep npm,再用kill 进程ID杀掉
方法2:用screen/tmux管理会话(适合需要随时回到控制台的场景)
screen操作步骤:
- 先装screen(没装的话):
Debian/Ubuntu:apt install screen
CentOS/RHEL:yum install screen - 新建一个会话:
screen -S react-app - 在这个会话里正常启动服务:
npm start - 按
Ctrl+A再按D,就能脱离会话,此时关SSH也不影响服务 - 下次想回到控制台看输出:
screen -r react-app - 要终止会话的话,在会话里按
Ctrl+D,或者用screen -X -S react-app quit
tmux操作步骤(功能比screen更全):
- 装tmux:
Debian/Ubuntu:apt install tmux
CentOS/RHEL:yum install tmux - 新建会话:
tmux new -s react-app - 启动服务:
npm start - 按
Ctrl+B再按D脱离会话 - 回到会话:
tmux attach -t react-app - 终止会话:
tmux kill-session -t react-app
方法3:用PM2(生产环境首选,专业进程管理)
PM2能帮你自动重启进程、管理日志、设置开机自启,适合长期运行的服务:
- 全局安装PM2:
npm install -g pm2 - 进入React项目目录,启动服务:
pm2 start npm --name "react-test" -- start
--name是给你的进程起个名字,方便后续管理
- 查看所有运行的进程:
pm2 list - 查看服务日志:
pm2 logs react-test - 重启服务:
pm2 restart react-test - 停止服务:
pm2 stop react-test - 设置开机自启:
pm2 startup,然后跟着提示执行生成的命令就行
内容的提问来源于stack exchange,提问作者leon
相关产品推荐
相关产品推荐

