Berdasarkan berbagai sumber saya telah dirakit ~/.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
Saya sudah mengaktifkannya menggunakan systemctl --user enable screenlock.service
. Tetapi setelah reboot, masuk, menangguhkan dan melanjutkan (diuji dengan systemctl suspend
dan dengan menutup tutupnya) layar tidak terkunci dan tidak ada apa-apa di dalamnyajournalctl --user-unit screenlock.service
. Apa yang saya lakukan salah?
Menjalankan DISPLAY=:0 /usr/bin/xautolock -locknow
mengunci layar seperti yang diharapkan.
$ 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
Jika saya menjalankan systemctl --user start screenlock.service
kunci layar segera dan saya mendapatkan pesan log journalctl --user-unit screenlock.service
, jadi ExecStart
jelas sudah benar.
xautolock -locker slock &
Membuat layanan sistem dengan file yang sama berfungsi (yaitu, slock
aktif saat melanjutkan):
# ln -s "${HOME}/.config/systemd/user/screenlock.service" /usr/lib/systemd/system/screenlock.service
# systemctl enable screenlock.service
$ systemctl suspend
Tetapi saya tidak ingin menambahkan file khusus pengguna di luar $HOME
karena beberapa alasan:
- Layanan pengguna harus dipisahkan dengan jelas dari layanan sistem
- Layanan pengguna harus dikontrol tanpa menggunakan hak pengguna super
- Konfigurasi harus mudah dikendalikan versi
systemd-user
masih sangat rapuh; membuatnya berfungsi sebagai bagian dari sesi melalui pendekatan yang saya uraikan akan membantu mempersempit masalah; hanya itu yang bisa saya sarankan.
/etc/systemd/system/
atau $HOME/.local/systemd/system
menghindari memasukkan apa pun ke dalam /usr
manual. Seperti @jasonwryan sebutkan, sesi pengguna masih belum dianggap berkualitas produksi; tapi mereka semakin dekat.