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 suspenddan 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 -locknowmengunci 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.servicekunci layar segera dan saya mendapatkan pesan log journalctl --user-unit screenlock.service, jadi ExecStartjelas sudah benar.
xautolock -locker slock &
Membuat layanan sistem dengan file yang sama berfungsi (yaitu, slockaktif 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 $HOMEkarena 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-usermasih 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/systemmenghindari memasukkan apa pun ke dalam /usrmanual. Seperti @jasonwryan sebutkan, sesi pengguna masih belum dianggap berkualitas produksi; tapi mereka semakin dekat.