2013-06-21 199 views
5

我試圖弄清楚如何在啓動時運行程序,但是在意識到這個程序是一個無限循環後,我沒有辦法出去或回到終端。正確的時候,我給了Pi的權力,它只是正確的黑色背景上的程序。我不記得我做了什麼來使它在啓動時運行,我相信我只是在上面提到「exit 0」的地方以及低於「esac」的地方添加了一些代碼。我不記得甚至把我帶到那裏的命令。 (我是Pi和Python的新手,剛剛一直在玩... ..)停止Raspberry Pi在啓動時運行程序

如果任何人都可以幫我刪除這個程序或讓我能夠編輯它,所以我可以修復無限循環會很好。我寧願不必用新的raspbian完全覆蓋sd卡。但正如我所說,我無法在啓動時進行任何操作,並且Ctrl + C不會執行任何操作,也不會執行Ctrl + Alt + Delete操作。

編輯:當我把SD卡在我的電腦,我看到的11個文件的列表: 引導代碼 CMDLINE 配置 修正 fixup_cd 問題 內核 kernel_cutdown kernel_emergency start.elf start_cd.elf

這些都不意味着什麼,我...

+2

將SD卡插入電腦並取出程序。 – ctn

+0

我不知道這與Python有什麼關係。這是一個Linux配置問題。 –

+0

@DanielRoseman刪除了Python標籤 – hek2mgl

回答

11

更新:嚕ks像我沒有得到,你想中斷正在運行的引導進程並停止腳本。

最簡單的想法是打開pi,拔掉SD卡並插入桌面,(重新)移動腳本並重新引導。


過程中產生的過程存儲在/etc/init.d/...的腳本中。這些腳本由init進程調用,這是Linux機器上的第一個進程(PID:1)

但init並不是啓動/etc/init.d中的所有腳本。這取決於運行級別。在Debian系統中有7 run levels.

對於每一個運行級別有一個名爲像文件夾:

/etc/rc0.d 
... 
/rc6.d 

中是軟鏈接從/etc/init.d下腳本存儲。

要刪除每次啓動時執行的腳本,您將刪除該文件夾中的所有鏈接。通常在Debian系統中,這是使用update-rc.d工具來完成:

update-rc.d NAME_OF_INIT_SCRIPT remove 

你也應該看看文件/etc/rc.local

+1

但我無法進入終端窗口。正確的時候,我給它的權力,它顯示了一個白色的文字無限的黑色屏幕,我不能退出它。 – user2506445

+0

你可以閱讀文字嗎? – hek2mgl

+0

我同意@ user2506445 - 你如何停止正在運行的程序,因爲通常的CTRL-C不起作用。 另外兩個人評論上面說這與python無關 - err,如果它是一個python程序,並且你正在尋找如何停止python程序運行...肯定它確實與python(是的,我知道這也是一個Linux的東西 - 當然它可以有2個標籤?) –

4

可以使用的Cmdline.txt。 首先,添加或修改SD卡上的cmdline.txt文件。添加「init =/bin/sh」,然後重新啓動你的Pi,你可以看到一個命令行提示符。 鍵入'sudo nano /etc/rc.local'來編輯文件,並註釋或刪除包含錯誤的行。之後重新啓動。

1

我有完全相同的問題,無法退出使用CTRL + C的過程。我編輯瞭如上所述的cmdline.txt,但是然後pi沒有爲我的鍵盤加載必要的usb驅動程序。

因此,最終我通過SSH登錄到pi,並修改了我的rc.local文件。

0

我遇到了與本文開頭部分所述相同的問題。我的Python應用程序陷入了無限循環。

我試過按Ctrl + Alt鍵+ F2 命令如在網上發現沒有任何終端窗口是否打開很多職位推薦。顯然,經過許多其他試驗和重新啓動後,每當我的應用程序循環重新啓動時,我都會看到一個終端窗口。直到我開始使用手機的慢動作視頻錄製屏幕,並且在Linux提示符處於活動狀態並且能夠接受鍵盤輸入的終端窗口時,才能捕捉到任何內容。

我所做的(幾乎是盲目地)編輯的罪魁禍首文件與

sudo nano filename command 

,並以實際損壞的這樣的文件輸入一些字符,保存並關閉它,一個重啓皮。 在引導結束時,該文件產生了一個錯誤,但系統已準備好運行。

我當時能夠以正常的方式修復這個錯誤。它希望這可能對其他人有用。在我的情況下,它讓我無法燃燒一個新的Raspbian並失去了我之前的所有工作。

1

Alt + PrintScn + K殺卡的過程中,從rc.local的

0

我給自己買了卡在完全相同的問題上運行。幸運的是我啓用了ssh,顯然這在Raspbian Jessie中是默認禁用的,所以這可能不適用於所有人。

exit 0是/etc/rc.local中的行,您可以在現在以連續模式運行的腳本中添加該行。如果你能ssh到使用膩子Pi和郫縣的IP地址,然後

sudo nano /etc/rc.local 

向下滾動到文件的底部,並刪除有問題的程序,然後須藤重啓

他們的方式來防止這種情況的發生的問題是增加一個&(符號)到行的結尾叉過程並運行它作爲一個單獨的過程,像這樣

python /home/pi/myscript.py & 

如指定10

&符允許命令在單獨的進程中運行,並在進程運行時繼續引導。

相關問題