【问题标题】:Unpause a rails server that was paused in a different terminal window取消暂停在不同终端窗口中暂停的 Rails 服务器
【发布时间】:2011-05-04 09:00:32
【问题描述】:

我在 mac osx 上使用 zsh。如果我使用“rails s”启动 Rails 服务器,我可以通过在终端 (zsh) 中点击“ctrl-z”将其置于后台。

如果我打开一个不同的终端窗口,那么如果我做“工作”,我就看不到 Rails 服务器。但是,当我执行“ps”时,我可以看到它。

有没有办法在这个新的终端窗口中以某种方式“取消暂停”rails 服务器?

【问题讨论】:

  • 我将此问题标记为离题:它实际上是关于在 *nix 系统上处理进程,而不是关于 Ruby on Rails。
  • 我不同意,因为我正在开发 Rails 应用程序,所以出现了这个问题。我认为 Rails 开发人员知道答案的机会与 *nix 用户一样好。虽然我承认“ruby”标签可能不是最合适的。
  • 很公平,但仍然:这是一个普遍的 *nix/进程问题,ServerFault 的某个人可能更了解。我们是开发人员,而不是 *nix 专家。

标签: ruby-on-rails shell unix terminal


【解决方案1】:

你不能轻易move a process to a new tty。最简单的解决方案是在 screen 会话中启动它,分离屏幕,然后在新终端中恢复。

【讨论】:

    【解决方案2】:

    通过向其发送SIGSTOP,作业被“停止”。您的C-z 不会将作业发送到后台。它“停止”它。然后,您可以使用内置的 bg shell 将其移动到后台。但是,如果您向该进程发送 SIGCONT (kill -CONT <pid>),它应该将该进程带回前台。这可以从不同的 shell 完成。

    如果您输入jobs,您将看不到它,因为它是由不同外壳控制的作业(另一个终端窗口,而不是您输入作业的那个)。然而,进程是“全局的”,可以使用ps 命令从任何地方看到(正如您正确指出的那样)。

    更新:看来我说得太早了。显然,仅靠信号不足以将其带回前台。可能与外壳有关。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 2016-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多