GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Menghapus Blok Penghambat Systemd?

Dokumentasi tentang Systemd's Inhibitor Locks dan juga man systemd-inhibit menjelaskan cara memulai proses dengan cara memblokir sesuatu (misalnya handle-lid-switch acara).

Saya tidak dapat menemukan cara untuk mengizinkan saya menghapus “lock”/”inhibit”/”block” semacam itu.

Pertanyaan: Apakah ada cara untuk menghapus systemd-inhibit kunci, misalnya melalui dbus pesan?

Latar Belakang: apa yang saya perlukan untuk melepas kunci penghambat*

Laptop saya memiliki sakelar tutup penutup laptop, yang systemd-logind monitor dan jika penutupnya tertutup, laptop akan ditangguhkan – fungsionalitas “close-lid -> suspend “.

Setelah laptop ditempatkan di stasiun doknya, untuk membuat pengguna layar lebih besar, Gnome gsd-power secara sewenang-wenang ( dan salah dan tanpa pengaturan yang tersedia di Gnome untuk mengubahnya ) memutuskan untuk membuat kunci penghambat, mencegah fungsi “close-lid -> suspend ” untuk bekerja.

Mengetahui cara menghapus kunci penghambat, akan memungkinkan saya untuk memperbaiki pengaturan yang salah yang dilakukan oleh gnome-setting-deamon power gsd-power Gnome . Pengaturan Gnome salah, karena secara manual menjalankan suspend systemctl suspend menunjukkan memang tidak ada masalah.

Kunci penghambat yang ingin saya hapus, seperti yang tercantum dalam systemd-inhibit --list apakah ini:

     Who: alex (UID 1000/alex, PID 4248/gsd-power)
    What: handle-lid-switch
     Why: Multiple displays attached
    Mode: block

Jawaban yang Diterima:

Dari dokumentasi pengembang kunci penghambat:

Inhibit() mengembalikan nilai tunggal, deskriptor file yang merangkum
kunci. Segera setelah deskriptor file ditutup (dan semua
duplikatnya), kunci akan dilepaskan secara otomatis. Jika klien mati
saat kunci diambil maka kernel secara otomatis menutup deskriptor file
sehingga kunci terlepas secara otomatis. Kunci penundaan
yang diambil dengan cara ini harus dilepaskan ASAP pada penerimaan
PrepareForShutdown(true) (lihat di bawah), tetapi tentu saja hanya setelah
eksekusi tindakan aplikasi ingin menunda operasi
untuk yang pertama.

Anda mungkin tidak ingin mematikan gsd-power , jadi Anda harus menutup deskriptor file yang merangkum kunci. Kemungkinan besar dipegang oleh gsd-power . Memaksa proses lain untuk menutup salah satu deskriptor filenya bukanlah hal yang normal untuk dilakukan, dan dapat menyebabkan beberapa efek samping dalam gsd-power . Tetapi jika Anda ingin melakukannya, baca pertanyaan ini di Stack Overflow.

Terkait:Bagaimana menyediakan file asc memastikan saya mengunduh kode sumber yang dimaksud?

Sebagai gantinya, Anda dapat mencoba menghapus gsd-power izin untuk menjalankan tindakan DBus org.freedesktop.login1.inhibit-handle-lid-switch . Halaman manual dbus-daemon(1) mungkin bisa membantu.


Linux
  1. Bagaimana cara menghapus koneksi soket CLOSE_WAIT

  2. Bagaimana cara menghapus layanan systemd

  3. Java SecureRandom tidak memblokir? Bagaimana?

  1. Vimrc – Bagaimana Cara Memblokir Komentar?

  2. Bagaimana Cara Menghapus Instalasi Sbt?

  3. Bagaimana cara menghapus file tanpa menggunakan rm?

  1. Bagaimana Cara Menghapus Telegram?

  2. Firefox Tidak Responsif Karena Mengunci File, Bagaimana Cara Menghapusnya?

  3. Cara menghapus semua wadah Docker