Raspberry Pi OS 上的自動啟動程式和排程命令
本文將介紹幾種在樹莓派作業系統上在特定時間自動排程程式和命令的方法。
使用 Cron Daemon 在 Raspberry Pi OS 上安排任務
cron
守護程式的基礎知識在我們的一篇文章中進行了介紹,如果你不熟悉它,我們建議你先閱讀。在這種情況下,我們將演示如何在作業系統成功啟動後立即自動啟動程式。
請記住,crontab
檔案包含每個計劃作業的一行,其中前五項是時間-日期欄位。相反,當我們想安排一個 cron 作業在系統啟動時執行時,我們必須使用一個特殊的關鍵字說明符 - @reboot
。
cron
為常見時期提供了幾個關鍵字,例如 @daily
、@weekly
、@monthly
、@hourly
等。
以下 crontab 條目定義了一個 cron 作業以在系統啟動時執行 sleep
命令。請注意,所有五個日期時間欄位都使用 @reboot
關鍵字替換。
當在同一個 cron 作業條目中使用特殊關鍵字時,你不會指定其他欄位。
@reboot sleep 30m
在這種情況下,我們選擇了 sleep
命令,因為它是一種建立長時間執行程序的簡單方法,以後可以使用不同的命令對其進行檢查。
上面的示例命令執行 sleep
程式 30 分鐘,然後自動退出。
你可以通過傳遞訊號來顯式終止它。首先,你需要使用以下命令查詢程序 ID。
ps -A | grep sleep
輸出:
514 ? 00:00:00 sleep
然後你可以執行帶有 PID(程序 ID)引數的 kill
命令來終止 sleep
程式。
kill 514
關於 crontab
配置檔案的更多詳細資訊可以在相應的 Debian 手冊頁中找到。
使用 Anacron 在 Raspberry Pi OS 上安排任務
cron
非常適合在不停機的情況下執行系統,而普通使用者經常關閉他們的裝置。後一種情況可能會導致錯過 cron 作業,因此我們可能需要一個解決方案來在系統執行後執行這些作業。
anacron
類似於 cron
,它提供非同步排程任務,這意味著錯過的任務最終將在某個時間執行。但是,anacron
僅支援一天的最小時間間隔;因此它可能不適合許多場景。
anacron
任務條目位於 /etc/anacrontab
配置檔案中。
配置檔案通常包含多個條目,但你可以在檔案末尾附加使用者定義的任務,甚至可以新增以 #
字元開頭的自定義註釋。
在下面的示例中,我們建立了一個日常任務來執行 sleep 30m
命令。
1 10 cron.daily sleep 30m
請注意,第一列 (1
) 指定任務執行之間的間隔天數,而第二列表示給定任務在系統啟動時執行時延遲的分鐘數。
錯過的任務預計會出現後一種情況,因為系統在指定時間沒有執行,anacron
將在下次啟動時執行它們。但是,你可能希望延遲一些任務以減輕系統啟動時的過度負載,因此是第二列。
anacron
的一個缺點是你的使用者必須具有管理員許可權才能設定任務。在 Raspberry Pi OS 上,pi
使用者可以通過使用 sudo
字首命令修改 /etc/anacrontab
來設定 anacron
任務。
你可以在此處找到 anacron
的其他配置詳細資訊。
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn相關文章 - Raspberry Pi
- Raspberry Pi OS 上的 Cron 作業和任務排程
- 在 Raspberry Pi OS 上更改主機名
- 在 Raspberry Pi OS 上更改預設使用者名稱和密碼
- 在 Raspberry Pi OS 上使用藍芽
- 在 Raspberry Pi OS 上建立新使用者