電路城 發表於 2019-09-29 11:13:36
到目前為止,我們所有的樹莓派4BPython程序都是通過使用IDLE或通過控制臺窗口執行的。但是,我們可能希望我們的程序在啟動時自動運行,在本方法文檔中我們將學習如何在Raspbian上執行此操作!
為什麼在啟動時運行腳本?
大多數計算機用戶將熟悉基於用戶界面的程序,這些程序需要用戶輸入才能執行操作。例如,遊戲採用用戶操作虛擬角色的鍵盤和滑鼠數據來運行,跳躍,遊泳和爬行。其他應用程式(例如辦公程序)包含執行諸如保存文檔,創建新文件,執行外部腳本以及通過Internet發送數據包等功能的交互式元素。但是,這些類型的程序與其用戶進行廣泛的交互,並且通常依賴於用戶啟動程序。
然而,為微控制器編寫的程序通常涉及控制硬體和執行更多基本功能。雖然這些程序可以與用戶交互,但只要系統啟動就需要執行。樹莓派4B可以說是微控制器和PC之間的融合,因為它提供了微控制器的硬體功能(例如GPIO),同時還建立了可以運行Raspbian(Linux發行版)的架構。因此,許多用戶將樹莓派4B作為微控制器用於項目中,因此需要在Pi啟動後立即執行其程序。這樣可確保您無需遠程訪問Pi並運行程序。
在rc.local
讓Python程序在啟動時啟動的第一個任務是創建一個調用Python程序來執行的腳本文件。將以下代碼複製並粘貼到文件中,然後將該文件另存為「startup.sh」。為簡單起見,請確保將腳本文件保存到Documents文件夾中。
如果您不確定如何創建腳本文件,那麼打開終端窗口然後啟動nano。要啟動nano,請使用以下命令:
編輯完文件後,按Ctrl+X,這將提示您是否要保存文件。輸入Y,下一個選項將詢問您的文件名。由於我們已經指定了文件,只需按Enter鍵,文件將在Documents下創建。
腳本文件的第一行通知系統腳本應該使用bash運行,而不是在另一個shell中執行。第二行增加了一個小延遲,這非常重要。Raspbian的用戶報告說,如果啟動後太快執行Python腳本,某些服務可能無法使用,例如串行埠。第三行是調用Python程序的命令,這也應該在Documents中。如果要在其他文件夾中執行Python程序,請確保定義了正確的路徑。
但是,此腳本本身不會在引導時調用,因此我們需要在RaspbianOSRC.local上編輯一個特殊文件。在控制臺窗口中,使用以下命令以nano打開rc.local文件:
進入nano後,您需要輸入以下行:
最後的『&』符號至關重要,因為它在一個單獨的線程中執行腳本。如果缺少此符號,則系統將在主系統線程中運行腳本。如果腳本沒有結束(即無限循環),那麼系統永遠不會啟動。文件保存後,你的Pi現在應該在啟動時執行你的Python程序!
打開APP閱讀更多精彩內容
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容圖片侵權或者其他問題,請聯繫本站作侵刪。 侵權投訴