在 Debian 系統中,你可以使用 systemd 定時器和超時功能來實現任務超時處理
首先,創建一個新的 systemd 服務文件,例如 /etc/systemd/system/my-service.service。在這個文件中,定義你想要執行的任務。例如:
[Unit]
Description=My custom service
[Service]
ExecStart=/path/to/your/script.sh
這里,/path/to/your/script.sh 是你想要執行的腳本的路徑。
接下來,創建一個新的 systemd 定時器文件,例如 /etc/systemd/system/my-service.timer。在這個文件中,定義定時器的配置。例如:
[Unit]
Description=Run my-service.service every hour
[Timer]
OnCalendar=*-*-* *:00:00
Persistent=true
Unit=my-service.service
[Install]
WantedBy=timers.target
這里,OnCalendar=*-*-* *:00:00 表示每小時執行一次任務。你可以根據需要調整此設置。
要在任務執行時設置超時,你需要在服務文件中添加 TimeoutSec 選項。例如:
[Service]
ExecStart=/path/to/your/script.sh
TimeoutSec=300
這里,TimeoutSec=300 表示任務將在 300 秒(5 分鐘)后超時。你可以根據需要調整此設置。
保存所有更改后,運行以下命令以啟用并啟動定時器:
sudo systemctl daemon-reload
sudo systemctl enable my-service.timer
sudo systemctl start my-service.timer
現在,你的任務將按照預定的時間間隔執行,并且在超時后將自動停止。
要檢查定時器的狀態,可以使用以下命令:
sudo systemctl status my-service.timer
這將顯示定時器的當前狀態,包括上次執行任務的時間和任何超時事件。