在 Debian 系统中,你可以使用 systemd
定时器来实现并发任务
以下是如何使用 systemd
定时器实现并发任务的步骤:
my-task.service
的文件,其中包含以下内容:[Unit]
Description=My custom task
[Service]
Type=oneshot
ExecStart=/path/to/your/script.sh
将 /path/to/your/script.sh
替换为你要执行的脚本的路径。
my-task.timer
的文件,其中包含以下内容:[Unit]
Description=Run my-task.service every day at 10:00 AM
[Timer]
OnCalendar=*-*-* 10:00:00
Persistent=true
Unit=my-task.service
[Install]
WantedBy=timers.target
这将设置一个定时器,每天上午 10 点触发 my-task.service
。
sudo systemctl daemon-reload
sudo systemctl enable --now my-task.timer
现在,你的定时器将按照预定的时间执行任务。如果你有多个并发任务,只需为每个任务创建一个相应的服务单元文件和一个定时器单元文件,然后按照上述步骤启用它们。
请注意,systemd
定时器默认是串行执行的,即使它们触发的时间相同。如果你需要确保定时器并发执行,可以在服务单元文件中添加以下内容:
[Service]
...
ConcurrencyPolicy=parallel
这将允许具有相同触发时间的定时器并发执行。