2016-03-07 153 views
0

我有一個在啓動時運行的腳本,我想用鍵盤與腳本進行交互。我已經成功地將其設置爲在crontab中運行;但是,腳本在後臺運行,我無法使用鍵盤與腳本進行交互。這裏有一個簡單的腳本示例:在啓動時在前臺運行腳本樹莓派

def write_to_txt(item_to_write): 
    with open("my_txt_file.txt", "a") as myfile: 
     myfile.write('\n'+str(item_to_write)) 

while True: 
    keys_to_enter = raw_input() 
    write_to_txt(keys_to_enter) 

請問有人能指出我的方向嗎?

+0

你試過'xdotool'嗎?它按照程序模擬按鍵和鼠標點擊,只要它完全符合你的要求。 –

+0

感謝您的回覆。我不是想模擬擊鍵,而是記錄鍵盤上的實際擊鍵。我相信我需要腳本在啓動時在前臺運行來執行此操作。 –

回答

1

我發現瞭如何在啓動時運行的腳本,讓鍵盤與節目互動。到〜/ .bashrc文件,我追加:

sudo python /home/pi/example.py 
+0

我做了類似的事情。我在.bashrc文件中使用別名來實際調用腳本。即。 aslias 123456789 ='sudo python ... py' –

-1

您可以將後臺python進程置於前臺。 首先列出例如通過工作 任務:

[email protected]:~ $ jobs 
[1]+ Stopped     python pythonExample.py 

然後把任務由FG [工號]到前臺

fg 1 
0

如果我理解正確的話,你希望你的程序的標準輸入連接到在tty1?即在屏幕上看到的終端,如果您連接了顯示器 - 這是默認情況下,如果未安裝X窗口,或者未使用Ctrl + Alt + Fx切換tty,鍵盤輸入會終止。

是否將後臺腳本進程的所有權移動到tty1上的shell一個選項?如果是這樣,最簡單的可能是auto-login the Pi(或者用戶需要在啓動時用鍵盤登錄)。然後在tty1上自動啓動程序,以便stdin/stdout綁定到tty1。

要實現後者,我想你可以把它調用到的bash啓動腳本中的一個,像在這裏建議的內容:https://www.raspberrypi.org/forums/viewtopic.php?f=29&t=7192