Systemd Timer 執行秒級排程,可替代 crontab

crontab 每 30 秒執行 大家應該都有用過 crontab 的經驗吧? crontab 每次執行的最小單位就是分鐘,如果遇到秒級需求的任務排程。 很常見到類似底下的 crontab 的設定。 設定上相當方便,不過我們可以認識一下另一種 systemd timer 的作法。 或是你可以想像一下,如果 5秒要執行一次,crontab 會長什麼樣子。 * * * * * dosomething * * * * * sleep 30; dosomething systemd timer 特點 使用 timer 來執行 service,可以避免上一個任務還沒進行完,又開始一個新的任務。 systemd timer jobqueue.service / systemd service file 建立一個 jobqueue.service 設定檔,內容如下: [Unit] Description=Execute jobqueue [Service] Type=simple ExecStart=/bin/bash -c '/usr/bin/date >> /tmp/date.log' 建立完成後重載一下 systemctl daemon-reload 接著當你執行 systemctl start jobqueue.service 時,就會執行一次 ExecStart 的命令...

April 15, 2023