我最近开始使用systemd
来管理电源控制。
为了让我的屏幕在从挂起状态返回时被锁定,我创建了/etc/systemd/system/i3lock.service
这些内容
[Unit]
Description=i3lock
Before=sleep.target
[Service]
User=fommil
Type=forking
Environment=DISPLAY=:0
ExecStart=/usr/bin/i3lock -c 000000
[Install]
WantedBy=sleep.target
然后就跑了systemctl enable i3lock.service
。
但这意味着锁始终属于用户fommil
。
如何设置以当前拥有 X 会话的用户身份运行屏幕锁定器的服务?
答案1
/etc/systemd/user/
您应该使用用户单位而不是系统单位。如果您希望它对所有用户可用(未启用),请将其放入,或者$HOME/.config/systemd/user/
如果您希望它仅对该用户可用。
然后,您可以删除该User=
选项(也可能删除该Environment=
选项,您可以systemctl show-environment
以当前用户身份运行以查看是否已导入所需的环境变量),然后使用 启用该服务systemd --user enable i3clock
。(或者sudo systemd --global enable i3lock
如果它可供所有用户使用你想要的是为所有用户启用。