2012-01-21 29 views
9

我有一個腳本,用於在啓動計算機時徵求用戶的數字輸入。計算機正在運行Fedora 16,它使用的工作,在Fedora 13,但升級立即系統啓動時訪問stdin

read INTEGER 

返回後,卻一無所獲,但任何用戶輸入。我試過

read INTEGER 
wait $! 

但(可以預料的),這也行不通。該腳本從systemd服務文件運行(請參閱下面的註釋)。它必須以root身份運行,並且必須在用戶登錄之前啓動。它當前稱爲bash作爲它的解釋器,但有一些努力可以改變。任何人都可以幫助將此腳本恢復正常嗎?

額外信貸:在F13中,它用於暫停用戶輸入的引導(根據需要),但輸入不會在用戶鍵入時顯示。有沒有添加此功能的方法?

+1

我不知道答案您的特定問題,但我不知道從哪裏開始尋找:研究如何systemd的作品,這是新的init替換寫入一個新的systemd文件實際上非常簡單,並且將腳本執行放在其中也很容易。但是問題是你需要systemd來訪問stdin,這就是我不確定是否有魔術配置令牌會讓你做到這一點。快速閱讀systemd.unit手冊頁不會很快顯示給我。 –

+0

嗯。我已經把它放在一個systemd.service文件中,它按預期運行,但仍然不會接受鍵盤輸入,使用'type = oneshot','WantedBy = graphical.target','After = multiuser.target'。Will馬上試試'WantedBy = multiuser.target'看看是否有幫助。 –

+0

將它放入'multiuser.target''隊列中(爲了獲得更好的單詞「使它啓動明顯,但不會中斷啓動以獲得幫助。@WesHardaker,你知道systemd是什麼啓動嗎? –

回答

1

在正常開機,鍵盤連接到普利茅斯(我相信)

在Fedora,我相信你想要的東西,如:

plymouth ask-question --prompt="Pick a number between 0 and ∞" \ 
    --command="/usr/bin/numberguesser" 

可能與

 --dont-pause-progress 

顯示普利茅斯提示屏幕,與加密文件系統提示輸入密碼的方式不同。

請注意,/usr/bin/numberguesser只會得到在其標準輸入中輸入的字符串。

未經檢驗,對不起:-(