2016-11-05 30 views
0

我之前從未遇到過這種情況,因爲我總是可以運行dev服務器,在終端打開一個新選項卡並從那裏捲曲。我現在無法做到這一點,因爲我從Docker容器運行Django Development服務器,所以如果打開一個新選項卡,我將位於本地shell而不是docker容器中。在django開發服務器運行時,我怎樣才能捲曲127.0.0.1/8000?

我該如何離開開發服務器運行,仍然能夠捲曲或運行其他命令?

當我跑我留下了這條消息的開發服務器:

Django version 1.10.3, using settings 'test.settings' 
Starting development server at http://127.0.0.1:8000/ 
Quit the server with CONTROL-C. 

,因此無法輸入任何命令。

回答

2

您可以使用&運行服務器作爲當前shell後臺作業:

$ python manage.py runserver & 
[1] <pid> 
$ 

可以使用fg命令在runserver過程中找回直接控制,那麼你就可以阻止它作爲通常使用Ctrl+C

要將前臺進程設置爲後臺作業,可以使用Ctrl+Z將其暫停,然後運行bg命令。您可以使用jobs命令在當前shell中查看正在運行的背景作業列表。

screen的區別在於它會在當前shell中運行服務器。如果你退出shell,服務器也將停止,而screen使用一個單獨的進程,在你退出當前shell後將繼續。

+0

當我運行這個,我確實看到下面的[1] 19。但是,它下面仍然顯示開發服務器消息,所以我不能輸入任何命令。 – david

+0

@david不要讓輸出讓你分心。服務器在後臺運行,但仍寫入當前shell。如果您沒有有效的提示。只需點擊「Enter」,它應該再次出現。 – knbk

0

在開發環境中,你也可以做以下操作。

  1. 讓服務器在一個終端窗口中運行。
  2. 打開一個新的終端窗口/選項卡並運行 docker exec -it <Container ID/Name> /bin/bash 它會爲您提供對容器的交互式訪問,即可以在容器中而不是在本地外殼中執行任何命令。

類型exit將容器外殼展現給本地外殼。