timer - 调用服务模板的目标的 systemd 计时器
问题描述
我有一个 systemd 模板,load@.service
定义为:
[Unit]
Description=load script
Wants=network-online.target
After=network-online.target
PartOf=load.target
[Service]
Type=simple
ExecStart=/usr/bin/python3 load -d %i
User=root
[Install]
WantedBy=default.target
我需要使用不同的参数运行此脚本的四个不同实例-d
,因此我设置了一个load.target
定义为:
[Unit]
Description=dataloader.load workers
Wants=load@1.service load@2.service load@3.service load@4.service
[Install]
WantedBy=multi-user.target
我希望四个实例中的每一个都每 10 分钟运行一次。
如何设置 systemd 计时器以.target
间隔调用?
解决方案
您可以创建一个load@.timer
定义为的计时器单元:
[Unit]
Description=Run load@.service every 10 minutes
[Timer]
OnCalendar=*:0/10
AccuracySec=1us
并修改load.target
以调用.timer
单位而不是.service
单位:
[Unit]
Description=dataloader.load workers
Wants=load@1.timer load@2.timer load@3.timer load@4.timer
[Install]
WantedBy=multi-user.target
推荐阅读
- c# - 将 DevExpress.XtraTreelist.TreeListMultislection 的类型转换为 System.Collections.CollectionBase
- c# - 替代配置等待
- php - 将数据库表克隆到另一台服务器
- regex - 正则表达式:查找不包含大括号的行
- python - 在另一个数组中创建“条纹”的开始和结束索引的二维 numpy 数组。
- powershell - 根据 CSV 中的电子邮件地址将用户移动到其他 OU
- c# - 在 Windows 10 的 TaskView 中停止 UWP 应用的屏幕截图
- html - 如何从 .ts 文件中插入 html 标签
- java - 如何使用“Content-type:application/x-www-form-urlencoded”发出 Okhttp 请求?
- spring - 没有在 AspectJ 中注册的 ServerProperties