我在 systemd 中创建了一个 --user 服务,以便非特权用户可以管理服务。这很好用。我想在一天中的固定给定时间重新启动服务,所以我在用户 crontab 中创建了一个 cron 作业。
奇怪的是这不起作用。如果他们运行,用户可以重新启动服务:
systemctl --user restart myservice.service
Run Code Online (Sandbox Code Playgroud)
但是,从 crontab 运行它不会重新启动服务。有谁知道为什么?
这是在 Ubuntu 16.04 上运行的。
Ste*_*itt 12
systemctl --user需要与 D-Bus 会话交谈,这至少涉及设置,DBUS_SESSION_BUS_ADDRESS也许是XDG_RUNTIME_DIR;通常:
XDG_RUNTIME_DIR=/run/user/$(id -u)
DBUS_SESSION_BUS_ADDRESS=unix:path=${XDG_RUNTIME_DIR}/bus
export DBUS_SESSION_BUS_ADDRESS XDG_RUNTIME_DIR
systemctl --user restart myservice.service
Run Code Online (Sandbox Code Playgroud)
为此,您可能需要查看 systemd 计时器而不是 cron。
| 归档时间: |
|
| 查看次数: |
2056 次 |
| 最近记录: |