Python腳本開機自動運作;本帖适用于使用systemd的Linux系統,現在流行的Linux發行版都使用systemd。
背景服務程式是随系統自啟動的,我們隻要把Python腳本配置為服務就行了。需要注意的一點是你Python腳本的啟動時機,它依賴不依賴其他服務(網絡連接配接、一些分區的挂載等等)。
1 Python腳本
一個你要自啟動的Python腳本,我使用 /home/snail/autorun.py為例。
2 建立Unit配置檔案
$ sudo vim /lib/systemd/system/autorun.service
寫入如下内容:
[Unit]
Description=Test Service
After=multi-user.target
[Service]
Type=idle
ExecStart=/usr/bin/python /home/snail/autorun.py
[Install]
WantedBy=multi-user.target
上面定義了一個叫 Test Service 的服務,它在multi-user環境起來之後運作;ExecStart參數指定我們要運作的程式;idle確定腳本在其他東西加載完成之後運作,它的預設值是simple。
注意使用絕對路徑。
為了獲得腳本的輸出資訊,我們可以重定向到檔案:
ExecStart=/usr/bin/python /home/snail/autorun.py > /home/snail/autorun.log 2>&1
更改配置檔案的權限:
$ sudo chmod 644 /lib/systemd/system/autorun.service
3 使配置檔案生效
$ sudo systemctl daemon-reload
$ sudo systemctl enable autorun.service
4 重新開機
$ sudo reboot
5 檢視服務狀态
$ sudo systemctl status autorun.service
