loginctl enable-linger / disable-linger… mais lecture de l'état de la persistance?

16

Je sais comment activer / désactiver la persistance loginctl.

Mais jusqu'à présent, je n'ai trouvé aucun moyen d'interroger le statut d'un utilisateur.

Je veux savoir: la persistance est-elle activée pour l'utilisateur foo?

Comment puis-je accéder à ces informations?

guettli
la source

Réponses:

22

Vous pouvez afficher une liste d'utilisateurs persistants avec

ls /var/lib/systemd/linger

parce que

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

faire l'équivalent de

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

loginctl user-status foo affiche le statut persistant.

puce
la source
2
Je ne sais pas si cela fonctionne vraiment. Il y a quelques minutes, cela a imprimé une arborescence pour un utilisateur de test qui n'a pas persisté. Maintenant, quelques minutes plus tard, la sortie est «Échec d'obtention de l'utilisateur: aucun utilisateur« 1003 »connu ou connecté». J'utiliserai la solution de Markus Kuhn (vérifiez si le fichier / var / lib / systemd / linger / $ USER existe)
guettli
5

Le meilleur que j'ai trouvé pour le vérifier dans les scripts (par programme):

loginctl show-user $USER --property=Linger 2>/dev/null | grep -q 'yes'
Xorax
la source
Pourquoi ne pas utiliser ceci: "vérifier l’existence de / var / lib / systemd / linger"?
guettli
4
Parce qu'il est plus sujet à modifications sans préavis.
Xorax