【问题标题】:How to resume nodemon process?如何恢复nodemon进程?
【发布时间】:2026-01-01 02:45:02
【问题描述】:

这是我的场景, 我正在开发一个 nodejs 应用程序。 我已将应用程序部署到我们的服务器以进行测试。我使用 nodemon 来运行应用程序,因为它更容易。

所以我的问题是,当我在家工作时,由于我的网络问题,我经常与服务器断开连接。

所以,我不会从控制台获得任何日志。我现在正在做的是,每次登录后,我都会检查 nodejs 进程, 找到进程,杀死它并再次使用 nodemon 启动应用程序

我的问题是,有没有办法恢复我们的 nodemon 进程?

这样我们就可以立即看到日志,而不是我现在遵循的方法?

或者这真的是一个非常愚蠢的问题?

如果有这样的方法,请告诉我。

请帮助我,我正在寻找很多,没有找到解决方案。

我的服务器是 Ubuntu 16 lts

谢谢

【问题讨论】:

  • 简单的解决方法是使用 pm2 而不是 nodemon。使用 --watch 选项模拟 nodemon 在文件更改时自动重启
  • 注意:与 nodemon 不同,pm2 默认隐藏所有控制台日志。要查看日志,您需要运行 pm2 log。但这意味着您可以随时从任何会话“恢复”观看日志
  • Pm2 是管理节点运行脚本的解决方案。如果您仍想使用 nodemon,请选择 tmux,因为您可以像在终端中通常那样简单地创建另一个窗口会话并管理您的 nodemon 运行脚本。

标签: node.js nodemon


【解决方案1】:

有两个选项,我个人使用的一件事(这将消除您对 nodemon 的依赖)是使用screen。它包含在大多数 Linux 发行版中,即使您尚未安装它,所有主要 Linux 发行版中都有一个 screen 包。

您使用screen -S name 创建了一个新屏幕(第一次),当您断开连接时,您可以轻松地使用screen -R name 重新连接到屏幕。如果您需要从屏幕上分离,您可以使用Control+AControl+D 互相跟随。

screen 是通用的,适用于您在终端中可以执行的任何操作,如果需要,它也可以用于创建多个屏幕,只需提供不同的名称参数。

另一个解决方案是使用tmux,但它不像screen那么简单。

创建一个新的tmux 会话使用以下命令tmux new -s name,然后如果您需要重新附加到一个会话,您将需要使用tmux ls,然后在那里找到您的会话编号并通过重新附加到它tmux attach-session -t num.

可以使用Control+BControl+D 完成分离。

【讨论】:

  • 这也是我要找的。​​span>