Linux
如何讓 Debian 在啟動時執行 m python 腳本?
我的主文件夾 (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
設置讓腳本在您的使用者帳戶而不是超級使用者的保護下執行。而且,您可能再次根據問題中未指定的內容,需要協調呼叫腳本的相對順序和主目錄的(自動)安裝(如果它是單獨安裝的)。