loginctl enable-linger / disable-linger ... tetapi membaca status-linger?

16

Saya tahu cara mengaktifkan / menonaktifkan berlama-lama dengan loginctl.

Tetapi sampai sekarang saya tidak menemukan cara untuk menanyakan status pengguna.

Saya ingin tahu: Apakah tetap aktif untuk pengguna foo?

Bagaimana saya bisa mengakses informasi ini?

guettli
sumber

Jawaban:

22

Anda dapat menampilkan daftar pengguna yang bertahan

ls /var/lib/systemd/linger

karena

loginctl enable-linger $USER
loginctl disable-linger $USER

lakukan yang setara dengan

touch /var/lib/systemd/linger/$USER
rm /var/lib/systemd/linger/$USER
Markus Kuhn
sumber
8

loginctl user-status foo menunjukkan status berlama-lama.

tanda kutip
sumber
2
Saya tidak yakin apakah ini benar-benar berfungsi. Beberapa menit yang lalu ini mencetak pohon untuk pengguna uji yang belum diaktifkan. Sekarang, beberapa menit kemudian, hasilnya adalah "Gagal mendapatkan pengguna: Tidak ada pengguna '1003' dikenal atau masuk". Saya akan menggunakan solusi dari Markus Kuhn (periksa apakah file / var / lib / systemd / linger / $ USER ada)
guettli
5

Yang terbaik yang saya temukan untuk memeriksanya dalam skrip (terprogram):

loginctl show-user $USER --property=Linger 2>/dev/null | grep -q 'yes'
Xorax
sumber
Mengapa tidak menggunakan ini: "periksa keberadaan / var / lib / systemd / linger"?
guettli
4
Karena itu lebih bisa berubah tanpa pemberitahuan.
Xorax