さまざまなソースに基づいて、私は一緒に石畳をしました~/.config/systemd/user/screenlock.service
:
[Unit]
Description=Lock X session
Before=sleep.target
[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/xautolock -locknow
[Install]
WantedBy=sleep.target
を使用して有効にしましたsystemctl --user enable screenlock.service
。ただし、再起動、ログイン、サスペンド、および再開後(systemctl suspend
蓋を閉めた状態と閉めた状態の両方でテスト)、画面はロックされず、には何もありませんjournalctl --user-unit screenlock.service
。何が間違っていますか?
実行DISPLAY=:0 /usr/bin/xautolock -locknow
すると、期待どおりに画面がロックされます。
$ systemctl --version
systemd 215
+PAM -AUDIT -SELINUX -IMA -SYSVINIT +LIBCRYPTSETUP +GCRYPT +ACL +XZ +SECCOMP -APPARMOR
$ awesome --version
awesome v3.5.5 (Kansas City Shuffle)
• Build: Apr 11 2014 09:36:33 for x86_64 by gcc version 4.8.2 (nobody@)
• Compiled against Lua 5.2.3 (running with Lua 5.2)
• D-Bus support: ✔
$ slim -v
slim version 1.3.6
systemctl --user start screenlock.service
画面ロックをすぐに実行して、でログメッセージが表示されたjournalctl --user-unit screenlock.service
場合、ExecStart
明らかに正しいです。
xautolock -locker slock &
同じファイルを使用してシステムサービスの作成作品(、あるslock
再開時にアクティブであるが)。
# ln -s "${HOME}/.config/systemd/user/screenlock.service" /usr/lib/systemd/system/screenlock.service
# systemctl enable screenlock.service
$ systemctl suspend
しかし$HOME
、いくつかの理由により、ユーザー固有のファイルを外部に追加したくありません。
- ユーザーサービスはシステムサービスから明確に分離する必要があります
- ユーザーサービスは、スーパーユーザー権限を使用せずに制御する必要があります
- 構成は簡単にバージョン管理する必要があります
systemd-user
まだ非常に不安定です。私が概説したアプローチを介してセッションの一部として機能するようにすると、問題を絞り込むのに役立ちます。それが私が提案できるすべてです。
/etc/systemd/system/
か$HOME/.local/systemd/system
、/usr
手動で何かを入力しないようにすることができます。@jasonwryanが述べたように、ユーザーセッションはまだ生産品質とは見なされていません。しかし、彼らは近づいています。