一般地,我们最习惯用 npm run dev 运行一个程序,但是我们需要在关闭窗口后它依然继续运行。这通常被称为"后台运行"或"守护进程化"。这里有几种主流且可靠的方法,你可以根据自己的需求选择:
⚙️ 方法一:使用 nohup 命令 (简单直接)
nohup 是"no hang up"的缩写,它的作用就是让进程忽略终端关闭信号,从而在后台持续运行。
-
执行命令:
-
正确退出终端 :这是关键一步 。执行完上述命令后,不要直接点击关闭窗口的"X" 。必须先输入
exit命令来退出终端会话,这样才能确保nohup进程被正确剥离并独立运行。bash
bashexit
🛠️ 方法二:使用专业进程管理工具 pm2 (功能强大)
pm2 是 Node.js 生态中最流行的进程管理工具,特别适合在生产环境中使用。它提供了进程守护、自动重启、日志管理等一系列强大功能。
-
全局安装
pm2:bash
cssnpm install pm2@latest -g -
启动项目:在项目根目录下运行:
bash
sqlpm2 start npm -- run dev你也可以为这个进程命名,方便管理:
bash
arduinopm2 start npm --name "my-vue-app" -- run dev -
常用管理命令:
- 查看所有进程状态:
pm2 list - 停止应用:
pm2 stop my-vue-app - 重启应用:
pm2 restart my-vue-app - 删除应用:
pm2 delete my-vue-app - 查看日志:
pm2 logs my-vue-app
- 查看所有进程状态:
🖥️ 方法三:使用终端复用工具 screen 或 tmux (灵活方便)
如果你更喜欢在同一个窗口管理多个会话,screen 或 tmux 是很好的选择。它们可以创建独立的虚拟终端,即使断开连接,里面的进程也不会停止。
-
创建一个新的 screen 会话:
bash
perlscreen -S my-vue-dev -
在新建的会话窗口中运行项目:
bash
arduinonpm run dev -
分离会话 :按下键盘快捷键
Ctrl + A,然后按D。这样你就会回到主终端,而npm run dev会在后台的 screen 会话中继续运行。 -
重新连接会话:当你想回来查看时,使用以下命令即可恢复:
bash
perlscreen -r my-vue-dev
🧰 方法四:使用专用工具 devctl (轻量级)
devctl 是一个专门为 npm run dev 这类开发命令设计的轻量级后台管理工具。
-
全局安装:
bash
npm install -g devctl