跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 多个由 systemd timer 触发的每日备份任务中有一个静默不启动
未分類
2 4 月 2021

多个由 systemd timer 触发的每日备份任务中有一个静默不启动

多个由 systemd timer 触发的每日备份任务中有一个静默不启动

資深大佬 : jasonyang9 5

总体结构是这样的,daily-timer.timer设定每天半夜 2 点随机延迟 3600 秒触发daily-timer.target,多个.service服务单元设定[Install]为WantedBy=daily-timer.target。 各.service服务单元的[Service]的Type=oneshot,为了顺序而不是并发启动,在[Unit]中设定After=。

现在的情况是其中一个self-backup.service,是排在最后启动的,实际却静默不启动,没有错误日志。其它几个服务都成功。

先贴上这个服务的配置。

$ systemctl cat self-backup.service # /etc/systemd/system/self-backup.service [Unit] Description=Self Backup Requires=mnt-nas2.mount After=mnt-nas2.mount After=reboot4.service  [Service] Type=oneshot ExecStart=/root/sh/backup/self-backup.sh  [Install] WantedBy=daily-timer.target 

日志空空如也。

$ sudo journalctl --unit=self-backup.service $ sudo journalctl --priority=err --unit=self-backup.service $ sudo journalctl --priority=debug --unit=self-backup.service 

没有启动或没启动的任何日志。

尝试手动启动这一个服务是成功的,也会有日志记录。

$ sudo systemctl start self-backup.service $ sudo journalctl --unit=self-backup.service 

但就是无法被 Timer 触发。

$ sudo systemctl list-dependenies self-backup.service self-backup.service ● ├─mnt-nas2.mount ● ├─system.slice ● └─sysinit.target ●   ├─apparmor.service ●   ├─blk-availability.service ●   ├─dev-hugepages.mount ●   ├─dev-mqueue.mount ●   ├─keyboard-setup.service ●   ├─kmod-static-nodes.service ●   ├─lvm2-lvmpolld.socket ●   ├─lvm2-monitor.service ●   ├─nftables.service ●   ├─proc-sys-fs-binfmt_misc.automount ●   ├─sys-fs-fuse-connections.mount ●   ├─sys-kernel-config.mount ●   ├─sys-kernel-debug.mount ●   ├─systemd-ask-password-console.path ●   ├─systemd-binfmt.service ●   ├─systemd-hwdb-update.service ●   ├─systemd-journal-flush.service ●   ├─systemd-journald.service ●   ├─systemd-machine-id-commit.service ●   ├─systemd-modules-load.service ●   ├─systemd-random-seed.service ●   ├─systemd-sysctl.service ●   ├─systemd-sysusers.service ●   ├─systemd-timesyncd.service ●   ├─systemd-tmpfiles-setup-dev.service ●   ├─systemd-tmpfiles-setup.service ●   ├─systemd-udev-trigger.service ●   ├─systemd-udevd.service ●   ├─systemd-update-utmp.service ●   ├─cryptsetup.target ●   ├─local-fs.target ●   │ ├─-.mount ●   │ ├─boot.mount ●   │ ├─systemd-fsck-root.service ●   │ └─systemd-remount-fs.service ●   └─swap.target ●     └─dev-mapper-vestrox2dx2dvgx2dswap_1.swap 

可以确定self-backup.service是被daily-timer.target所依赖的,在/etc/systemd/system/daily-timer.target.wants/目录下有所有需要触发的服务单元的软连接。

小结:

  • 某个用定时器触发,顺序启动的服务单元静默不启动运行
  • 没有相关日志
  • 手动可以成功运行该服务,也会产生日志

各位彦祖,请教这可能是什么问题导致的,其次遇到这种问题用什么办法来排错和调试?谢谢

大佬有話說 (1)

  • 主 資深大佬 : jasonyang9

    折腾了半天发现是依赖`Requires=mnt-nas2.mount`在用`.target`触发时不会满足,不会自动挂载文件系统。而在手动执行`systemctl start self-backup.service`时却能够加载。是 BUG 么?

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具