Systemd:挂起前停止服务,恢复后重新启动

Systemd:挂起前停止服务,恢复后重新启动

xflux我有一个 systemd 服务,它从用户会话管理器运行后台守护进程 ( )。

当我暂停和恢复计算机时,它会打乱xflux时间计算;我必须手动发出systemctl --user restart xflux才能修复它。

如何让服务在挂起前自动停止,并在恢复后自动启动? (我找到了一个在恢复时自动运行给定服务的答案,但这并不是我想要的。)

答案1

您可以放入一个可执行文件,它将在挂起时使用 2 个参数和/lib/systemd/system-sleep/运行,并在使用和恢复后再次运行。系统presuspendpostsuspend手册页说这是一个黑客行为。


要使用 systemd 单元,请参阅我的后面内容回答类似的问题。

答案2

旧线程 - 然而,我偶然发现了类似的情况。请求的代码片段应该是:

#!/bin/sh
case "$1" in
    USER=username
    post)
    su - $USER --shell=/bin/sh -c '
            export XDG_RUNTIME_DIR=/run/user/$(id -u);
            systemctl --user restart xflux
            '
    ;;
esac

相关内容