Linux系统中Vue项目无法在后台长期运行(即nohup无法将vue项目进程转为守护进程)的解决方法

一、运行环境

项目使用vue版本:vue3.0;
服务器系统镜像:Alibaba Cloud Linux 3.21.04;
node.js版本:v18.15.0;
npm版本:v9.6.2;
终端连接工具:FinalShell 3.9.8.2。

二、问题复现

将vue项目上传至阿里云服务器中,使用cd命令进入项目所在文件夹中,
在这里插入图片描述再使用nohup npm run serve > /opt/log/vue.log 2>&1 & 命令让Vue项目持续在后台运行
在这里插入图片描述
在这里插入图片描述
此时Vue项目已经运行成功,通过浏览器输入地址已经可以正常访问。但是通过ps -axj命令查看进程信息(如下图),图中java后端已通过nohup命令转为守护进程可在终端关闭后继续运行(PTGID为-1时,表示该进程为守护进程),但是npm运行的前端并没有转为守护进程。
在这里插入图片描述
查询了很多网上的教程,有说把nohup加入到 ~/.bash_profile中,尝试后依然失败。我后来在无意间的一次操作中实现了长时间后端运行。

三、解决方法

其实方法非常简单,就是通过npm运行项目后,ps -axj 查看到npm运行的PPID为824829,使用kill -9 824829 销毁npm进程的父进程即可。
在这里插入图片描述
运行命令后终端连接会断开,然后再次回车,终端会再次连接。此时再次使用 ps -axj命令查询进程信息(如下图)会发现npm运行的进程奇迹般转为了守护进程。关闭终端后,再使用浏览器访问前端项目也不会无法访问了,至此问题解决。
在这里插入图片描述

四、后记

出现这个问题的原因没有找到,解决这个问题的方法原理也没有弄清楚,完全就是瞎猫撞上死耗子,有Linux大佬知道这其中的原理,请私聊我,本菜鸟真诚求教。

2023-08-17 补充:
根据评论区大佬 网络老男孩了 的方法,cd到vue项目目录下,执行 “nohup npm run serve > /opt/log/vue.log 2>&1 &” 后台运行的命令,待启动完毕后,再执行 “exit” 命令。此时会发生我文章里说的kill npm 父进程一样的效果,终端连接会断开,然后再次回车,终端会再次连接。用 ps -axj命令查看vue项目进程发现也实现了长期运行。亲测有效,感谢大佬提供的简便方法。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琪琪的饭团子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值