我的主資料夾 (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