Linux

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

  • November 13, 2018

我的主文件夾 (pi) 中有這個腳本:server.py。

我怎樣才能讓 Debian 在啟動時執行這個腳本,這樣我就不需要登錄並手動執行它了?

在首次編寫此答案時,Debian(預設安裝)將“SysV”rc 腳本與start-stop-daemon二進製文件一起使用。文件中有一個範例腳本,/etc/init.d/skeleton可以作為 rc 腳本的基礎。一旦有了自己的 rc 腳本並將其標記為執行檔,update-rc.d就可以使用該命令將其添加到所需的執行級別。

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

  • /etc/init.d/skeleton腳本已被 (5) 手冊頁中的範例腳本所取代,該腳本在 2018 年晚些時候完全取消init-d-script後成為唯一可用的基礎。/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設置讓腳本在您的使用者帳戶而不是超級使用者的保護下執行。而且,您可能再次根據問題中未指定的內容,需要協調呼叫腳本的相對順序和主目錄的(自動)安裝(如果它是單獨安裝的)。

引用自:https://unix.stackexchange.com/questions/42482