Saya sedang membaca dokumen dan masih belum jelas bagi saya, apakah hal-hal berikut ini dapat diselesaikan:
layanan yang ditentukan ~/.config/systemd/user/task.service
tergantung pada sistem sleep.target
( ~/.config/systemd/user/sleep.target.wants/task.service
).
Sekarang saya berharap task.service
untuk memulai ketika saya menjalankan $ systemctl suspend
, namun task.service
tidak dimulai.
Saya menjalankan debian, dengan systemd versi 208, systemd --user
dikonfigurasi lebih atau kurang seperti yang dijelaskan pada ArchWiki .
Saya bertanya-tanya apakah skenario saya dapat diimplementasikan dengan systemd sama sekali, atau apakah --system
dan --user
sepenuhnya terisolasi oleh desain sehingga --user
unit mungkin tidak menjadi ketergantungan suatu --system
unit.
Jika mungkin, apa yang menjadi masalah dalam kasus saya?
Jawaban:
Dari systemd / Pengguna - Archwiki
sumber
systemd
layanan sesi pengguna dijalankan dalam instance yang sepenuhnya terpisahsystemd
, dan tidak memiliki cara untuk bergantung pada layanan sistem secara langsung.Ada cara lain untuk mencapai apa yang Anda inginkan. Yang terbersih mungkin akan membuat apa pun yang Anda ingin jalankan ketika sistem akan tidur menghubungkan ke
logind
penghambat dan kemudian menjalankannya sebagai daemon latar belakang.Solusi yang lebih umum adalah dengan memasang daemon hooks ke dalam
logind
inhibitor, (lihat systemd-lock-handler dan xss-lock ,) dan kemudian ketika sistem akan tidur itu akan mengaktifkan target sesi pengguna yang dapat Anda pesan layanan Anda. dibawah.sumber
Menambahkan ke respons dari @kyrias, berikut adalah cara untuk membuat sleep.target tingkat pengguna Anda sendiri:
~ / .local / share / systemd / user / sleep.target
~ / .local / bin / watch_sleep
~ / .local / share / systemd / user / watch_sleep.service
Lihat posting blog saya https://medium.com/@aiguofer/systemd-sleep-target-for-user-level-10eb003b3bfd
sumber