systemd定时器任务启动失败,每日定时配置报错求助
systemd定时器任务启动失败,每日定时配置报错求助
看起来你在配置systemd定时任务时踩了个语法小坑,我来帮你梳理下问题出在哪:
你想要让任务每天凌晨2点和下午2点各运行一次,于是在.timer文件里写了这段配置:
OnCalendar=*-*-* 02:00:00,14:00:00
但执行systemctl start myjob.timer时收到了报错:
Failed to start myjob.timer: Unit myjob.timer has a bad unit file setting.
问题的根源在于systemd的OnCalendar参数不支持用逗号分隔多个时间规则,这是很多新手容易搞错的点。你可以换成以下两种正确写法之一:
写法一:拆分多个OnCalendar行
把两个时间点分别写成独立的OnCalendar配置,可读性更强:
OnCalendar=*-*-* 02:00:00 OnCalendar=*-*-* 14:00:00
写法二:用空格分隔时间条目
如果想写在同一行,需要用空格代替逗号来分隔不同的时间规则:
OnCalendar=*-*-* 02:00:00 *-*-* 14:00:00
修改完配置后,别忘了先重新加载systemd的配置文件,再启动定时器:
systemctl daemon-reload systemctl start myjob.timer
你可以用systemctl list-timers myjob.timer命令来检查定时器的触发时间是否符合预期哦。
备注:内容来源于stack exchange,提问作者guesty




