如何讓 Debian 在啟動時運行 m python 腳本?

如何讓 Debian 在啟動時運行 m python 腳本?

我的主資料夾 (pi) 中有此腳本:server.py。

我怎麼能讓 Debian 在啟動時運行這個腳本,這樣我就不需要登入並手動運行它?

答案1

在第一次寫這個答案時,Debian(預設安裝)在二進位檔案中使用了「SysV」rc 腳本start-stop-daemon。文件中有一個範例腳本/etc/init.d/skeleton,可以將其作為 rc 腳本的基礎。一旦擁有了 rc 腳本並將其標記為可執行文件,update-rc.d就可以使用該命令將其新增至所需的運行等級。

隨著歲月的流逝,事情發生了變化。特別是 2014 年,有兩件事發生了變化:

  • /etc/init.d/skeleton腳本被 (5) 手冊頁中的範例腳本取代init-d-script,該腳本於 2018 年晚些時候成為僅有的/etc/init.d/skeleton完全廢除時可用的基礎。框架的內容也發生了顯著變化,不再需要人們編寫調用,start-stop-daemon甚至不需要編寫比某些變數賦值更多的內容。 (看https://unix.stackexchange.com/a/480897/5132.)
  • 安裝的預設值變更為 systemd,並且必須編寫 systemd 服務單元檔案(不必標記為可執行)並使用systemctl enable.但沒有範例單元文件。 (看https://github.com/systemd/systemd/issues/10572.)

因此,從 2018 年開始,您需要編寫一個 systemd 服務單元文件,(至少)在設定中命名您的腳本(使用絕對路徑名)ExecStart。儘管問題沒有指定某種方式,但您可能想要使用一種User設定來讓腳本在您的使用者帳戶而不是超級使用者的支援下運行。你呢可能再次取決於問題中未指定的內容,需要協調呼叫腳本的相對順序以及主目錄(如果單獨安裝)的(自動)安裝。

答案2

投入。su -c 'SCRIPT' USER/etc/rc.local

相關內容