2015-06-18 41 views
2

我知道Control+z通过发送信号SIGSTOP来暂停进程。
每当我运行rails console命令它去到控制台,并告诉我这一点:为什么ctrl + z和ctrl + c在Rails控制台上不起作用?

Loading development environment (Rails 4.2.1) 
2.2.1 :001 > 

这意味着我在轨控制台。
但是当我使用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 > 

这究竟是为什么?

回答

2

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

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

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

+1

那么为什么后台进程处于'暂停状态'(aka'stopped'或'suspended')与当前控制台产生负面影响?如何修复/解决? – user2864740

+0

究竟是为什么当它处于暂停状态时它正在进行交互。 –

相关问题