为什么ctrl + z和ctrl + c无法在Rails控制台上运行?

时间:2015-06-18 06:35:43

标签: ruby-on-rails terminal

我知道Control+z用于通过向其发送信号SIGSTOP来暂停进程 每当我运行rails console命令时,它会进入控制台并向我显示:

Loading development environment (Rails 4.2.1)  
2.2.1 :001 >  

这意味着我在rails控制台中 但是当我使用ctrl + z退出控制台时出现:

[1]+  Stopped  

表示控制台进程已成功停止。

问题是:当我使用Ubuntu终端时,它会将我发送到控制台并向我显示:

 xyz:~/Desktop/x/y$ rails c  
    Loading development environment (Rails 4.2.1)  
    2.2.1 :001 >  
    [1]+  Stopped                 rails c  
    xyz:~/Desktop/x/y$ cd ..  
    2.2.1 :002 >  

为什么会这样?

1 个答案:

答案 0 :(得分:2)

  

已停止,这意味着控制台进程已成功停止。

这是错误的。 ctrl-z,不会停止流程。它以暂停状态将其发送到后台。但是,正如您可以看到in this answer,它还会启动一个单独的弹簧服务器"将控制台进程发送到后台时,您不会暂停。这可能会导致奇怪的行为,因为Spring服务器认为现在有两个控制台在运行。

如果您确实想要正确退出rails控制台,请使用ctrl-d这是一个干净的关闭。