2015-06-18 71 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

究竟是爲什麼當它處於暫停狀態時它正在進行交互。 –

相關問題