首页/系统/信创系统运维速查/systemd-run 临时与延迟执行
服务与运维65 条

systemd-run 临时与延迟执行

不写 unit 文件直接让 systemd 托管一次性命令或定时任务:systemd-run 立即执行并接管输出;--on-active/--on-calendar 生成瞬时 timer,适合临时运维动作。

信创系统运维速查系统更新于 2026-10-12

示例

示例
systemd-run --unit=test-ping ping -c 3 10.0.0.1
systemd-run --on-active=30m /opt/scripts/check.sh            # 30 分钟后执行一次
systemd-run --on-calendar='*-*-* 03:00:00' /opt/scripts/nightly.sh
journalctl -u test-ping -n 20 --no-pager
相对时间--on-active=30m
日历时间--on-calendar='...'
输出进 journal,用 journalctl -u 查看
临时单元默认位于 /run 下,重启即消失;需要长期保留的计划任务还是落正式 .timer 文件。

易错点

  • --on-active 是相对时间,--on-calendar 是日历时间,二者不要混用
  • systemd-run 默认以 root、干净环境变量执行,脚本别依赖当前 shell 的 PATH 与变量

数据来源与参考

  • man 1 systemd-run
  • man 5 systemd.timer(瞬时单元)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌