我在使用zsh的mac osx上。如果我使用“rails s”启动rails服务器,我可以通过在终端(zsh)中点击“ctrl-z”将其放在后台。
如果我打开一个不同的终端窗口,那么如果我执行“作业”,我就看不到rails服务器。但是,当我做“ps”时,我可以看到它。
有没有办法在这个新的终端窗口中以某种方式“取消暂停”rails服务器?
答案 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有关。