debian

Debian 定时器如何实现并发任务

小樊
45
2025-04-28 02:24:40
栏目: 智能运维

在 Debian 系统中,你可以使用 systemd 定时器来实现并发任务

以下是如何使用 systemd 定时器实现并发任务的步骤:

  1. 创建一个 systemd 服务单元文件。例如,创建一个名为 my-task.service 的文件,其中包含以下内容:
[Unit]
Description=My custom task

[Service]
Type=oneshot
ExecStart=/path/to/your/script.sh

/path/to/your/script.sh 替换为你要执行的脚本的路径。

  1. 创建一个 systemd 定时器单元文件。例如,创建一个名为 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

  1. 重新加载 systemd 配置:
sudo systemctl daemon-reload
  1. 启用并启动定时器:
sudo systemctl enable --now my-task.timer

现在,你的定时器将按照预定的时间执行任务。如果你有多个并发任务,只需为每个任务创建一个相应的服务单元文件和一个定时器单元文件,然后按照上述步骤启用它们。

请注意,systemd 定时器默认是串行执行的,即使它们触发的时间相同。如果你需要确保定时器并发执行,可以在服务单元文件中添加以下内容:

[Service]
...
ConcurrencyPolicy=parallel

这将允许具有相同触发时间的定时器并发执行。

0
看了该问题的人还看了