小编mis*_*hac的帖子

让 systemd 计时器 * 不* 在启动时运行,仅按计划运行

我遇到了一个问题,我有一堆 systemd 计时器设置为按计划运行以执行各种与备份相关的任务。他们在指定的时间成功运行。但是,它们也会在系统启动时运行,我想避免这种情况。例如,我有一个需要几个小时才能完成的远程 rsync,它只需要在晚上运行一次,而不是在重新启动时运行。

这是一个示例计时器:

[Unit]
Description=Run Remote rsync
Requires=remote-backup.service

[Timer]
OnCalendar=*-*-* 4:00:00
RandomizedDelaySec=1h
Persistent=false

[Install]
WantedBy=timers.target
Run Code Online (Sandbox Code Playgroud)

这是它运行的服务:

[Unit]
Description=Remote backup
After=zfs.target network-online.target
OnFailure=status-email-root@%n.service

[Service]
Type=oneshot
ExecStartPre=/path/to/pre-backup script
ExecStart=/path/to/backup-script
ExecStartPost=/path/to/post-backup script
Run Code Online (Sandbox Code Playgroud)

(备份前和备份后脚本会 ping 运行状况检查 URL,以便我获得成功/失败/等报告。)

问题是它应该只在凌晨 4 点运行,但如果我重新启动它会尝试在启动时运行。我试过改成Persistentfalse 没有效果。我想保持它的真实性,因为如果备份真的失败或没有运行,我想重新运行它,但不是每次都运行它!

我也尝试删除WantedBy但这只是让事情永远不会运行,我也尝试更改Type服务但没有成功。

如果有人有任何见解,我将不胜感激。谢谢!

timer systemd

5
推荐指数
1
解决办法
530
查看次数

标签 统计

systemd ×1

timer ×1