多个由 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)