簡體   English   中英

如果我只能在執行Rails服務器后在其他終端中鍵入命令行?

[英]If I only can type command lines in other Terminal after execute rails server?

當我跑步時:

$ rails server

它來了:

=> Booting Puma
=> Rails 5.0.1 application starting in development on  http://localhost:3000
=> Run `rails server -h` for more startup options
Puma starting in single mode...
* Version 3.6.2 (ruby 2.3.0-p0), codename: Sleepy Sunday Serenity
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

因此,我無法在此終端中鍵入命令,因此是否必須通過Command + N打開另一個終端以鍵入命令?

嘗試

rails server -d

它將獨立運行Rails服務器。

如果使用Mac,只需鍵入command + t打開新的終端選項卡,然后按Ctrl + C殺死服務器,您也可以使用rails控制台( rails c來運行)。

要在bash中在后台啟動任何作業,請在其上附加&

rails server &

您可以使用fg將其放到前台。

要將任何作業放回后台,請使用Ctrl + Z ,然后使用bg將其推送到后台。

注意:所有stdout / stderr將繼續寫入bg上的終端

正如@Sairam對原始問題的評論所指出的(他也要求我創建答案):

對於大多數(如果沒有)Linux / Unix,這些解釋應該是正確的。

如果將&附加到命令,它將直接發送到后台:

rails server &

如果輸入

jobs

您現在應該看到正在后台運行作業。

要使此命令“返回”(如果它沒有崩潰,無論如何它仍在運行),請調用

fg

要暫停並暫時停止執行此命令,請使用Ctrl + Z。 您現在回到了外殼中。 jobs將向您顯示發生了什么(作業現在“已停止”)。

因此,您有一個“已停止”的工作並且在終端中。 要將這項工作推到后台(並使其繼續執行),請致電

bg

(用於“背景” ...)。

現在,如果您想找回它,請致電(獲取) fg ,依此類推...

請注意,使用這種方法(例如,相對於rails server -d ),您將擁有更多/更輕松的控制權,並且您的命令將在終端會話中被殺死。 因此,當您關閉終端時,rails服務器也將關閉。 如果您不想這樣做,通常會使用screen (或其他替代方法)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM