取消暂停在不同终端窗口中暂停的rails服务器

时间:2011-05-04 09:00:33

标签: ruby-on-rails shell unix terminal

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

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

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

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

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