为什么 ctrl + z 和 ctrl + c 在 Rails 控制台上不起作用?

Why ctrl + z and ctrl + c is not working on Rails console?

我知道 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 >  

为什么会这样?

Stopped which means console process is stopped successfully.

这是错误的。 ctrl-z,不会停止进程。它以暂停状态将其发送到后台。然而,如您所见 ,它还会启动一个单独的 "spring server",当您将控制台进程发送到后台时您不会暂停。这可能会导致奇怪的行为,因为 spring 服务器认为现在有两个控制台 运行。

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