2016-02-09 37 views
0
@hosts(['localhost']) 
def start(): 
    import curses 
    screen = curses.initscr() 
    backup_file = db_backup.sql 
    local("mysql -u %s -p %s < " % (
     db_username,db_name) + backup_file) 

與晶圓廠和詛咒恢復,現在我運行這個與晶圓廠開始Mysql數據庫在Django

它要求輸入密碼,之後我進入屏幕沒有響應的密碼。

任何人都可以知道這裏發生了什麼?如果我刪除詛咒它工作正常。

回答

0

通過暫停詛咒,它將返回到終端。我們可以在其中完成還原數據庫任務。

0

local命令正在提示輸入密碼。這期望終端模式設置正常,所以如果您按輸入(它發送一個^M)它被映射到一個換行符(^J)。

當您使用curses.initscr初始化curses時,會更改終端模式,以便未完成映射。當您致電getch時,curses庫將自己的映射到它自己的映射中。

如果按控制Ĵ,而不是輸入,應該安撫在local命令密碼提示。

由於您的示例沒有使用curses(可能它的確在之後的),您可以省略它,也可以將初始化向下移動到需要使用它的位置。

在任何情況下,您可能無法通過curses(不假設和依賴特殊設備)在腳本中使用密碼提示來使用local命令。

+0

感謝您的回覆。我找到了解決方案。在使用curses.endwin()調用本地命令之前,我暫停了curses。 –