如何让 systemd --user 计时器在重启后保持启用状态?

如何让 systemd --user 计时器在重启后保持启用状态?

系统是:Ubuntu 16.04。

~/.config/systemd/user/mpd.timer

[Unit]
Description=mpd timer

[Timer]
OnCalendar=minutely
Persistent=true

[Install]
WantedBy=default.target

~/.config/systemd/user/mpd.service

[Unit]
Description=mpd

[Service]
ExecStart=/home/redacted/temp/mpd-service/mpd.sh
Type=oneshot

运行:systemctl --user start mpd.timer,服务成功运行,并在 下列出systemctl --user list-timers

运行:systemctl --user enable mpd.timer,在中创建了一个符号链接~/.config/systemd/user/default.target.wants

重启后systemctl --user enable mpd.timer显示为空。还尝试了timers.targetfor WantedByof mpd.timer。结果是一样的。

运行:systemctl --user --type=target --all,显示default.targettimers.target已加载且处于活动状态。

已尝试:systemctl --user daemon-reload

尝试过:sudo loginctl enable-linger redacted。运行过:loginctl show-user redacted。显示过:Linger=yes。结果是一样的。

我搜索过类似的问题,但找不到其他可以尝试的方法。

答案1

我认为您的设置可能没有问题,只是对 systemd 的工作方式存在误解。如果您两次启用一个单元,systemctl 将不会在第二次显示任何输出,因为它已经创建了符号链接,它不会告诉您它已启用

您可以检查计时器是否已启用、是否已启动并正在运行systemctl --user status mpd.timer

第一行打印名称和说明,第二行(以 开头的行Loaded:)告诉您文件的位置以及是否已启用,第三行(Active:)告诉您它是否处于活动状态(正在运行)以及从何时开始。它还应该告诉您是否有错误或失败。

参见https://www.freedesktop.org/software/systemd/man/systemctl.html

更新:抱歉,我对于徘徊的看法是错误的。

相关内容