在 Ubuntu 系統中,你可以使用 systemd
的定時器(timer)來實現超時功能。以下是設置定時器超時的步驟:
my-service.service
),這個服務文件定義了你想要執行的操作。將此文件保存在 /etc/systemd/system/
目錄下。[Unit]
Description=My custom service
[Service]
ExecStart=/path/to/your/script.sh
my-service.timer
),這個文件定義了定時器的行為。將此文件保存在 /etc/systemd/system/
目錄下。[Unit]
Description=Run my-service.service every hour
[Timer]
OnCalendar=*-*-* *:00:00
Persistent=true
Unit=my-service.service
[Install]
WantedBy=timers.target
在這個例子中,OnCalendar
行定義了定時器的觸發時間。這里設置為每小時執行一次。你可以根據需要修改這個值。
systemd
配置:sudo systemctl daemon-reload
sudo systemctl enable --now my-service.timer
sudo systemctl list-timers --all
要設置超時,你可以在你的腳本(例如:/path/to/your/script.sh
)中使用 timeout
命令。例如,如果你想要在腳本運行超過 30 分鐘時終止它,可以在腳本中添加以下內容:
timeout 30m /path/to/your/command
這將在 30 分鐘后終止 /path/to/your/command
。如果你想要在腳本超時時收到通知,可以使用 --signal
選項發送一個信號(例如,SIGUSR1
):
timeout --signal=SIGUSR1 30m /path/to/your/command
然后,你可以在腳本中捕獲這個信號并執行相應的操作。