You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止systemd定时器在系统重启后触发对应的一次性服务?

如何阻止systemd定时器在系统重启后触发对应的一次性服务?

看起来你遇到的问题根源其实和定时器本身关系不大,而是服务的开机自启配置在搞鬼!

咱们一步步拆解问题:

  • 你的stop_syncro.service里的[Install]段设置了WantedBy=multi-user.target,如果你之前执行过systemctl enable stop_syncro.service,那系统每次进入multi-user.target(也就是重启后的常规运行级别)时,都会自动启动这个一次性服务——这就是为什么你重启后服务立刻跑了的原因。
  • 而定时器本身的OnCalendar配置是没问题的,它确实会在工作日8点触发服务,但额外的开机启动是服务自身的配置导致的。

下面是具体的解决步骤:

  1. 先禁用服务的开机自启,让系统重启时不再主动启动它:
systemctl disable stop_syncro.service
  1. 确保只启用定时器,而非服务本身——定时器才是控制服务触发时机的正确方式:
systemctl enable stop_syncro.timer
  1. 可选但推荐:添加防补跑配置
    如果担心系统在原定的8点触发时间处于关机状态,重启后会补跑服务,可以在stop_syncro.timer的[Timer]段明确添加Persistent=false(默认就是false,但写出来更清晰):
[Unit]
Description=Timer d_arret de la Synchro

[Timer]
OnCalendar=Mon-Fri *-*-* 8:00:00
Persistent=false

[Install]
WantedBy=timers.target

修改后重新加载systemd配置并重启定时器:

systemctl daemon-reload
systemctl restart stop_syncro.timer

这样调整后,你的服务就只会在工作日的8点被定时器触发,再也不会在重启后自动运行了。

备注:内容来源于stack exchange,提问作者SebMa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:30:32