Puncte:0

Deconectare/ieșire din „su durează > 1 minut

drapel cn
JK1

Dacă „su root” sau „su <other_user>” din contul meu de autentificare utilizator și apoi mă deconectez (sau ies), durează aproximativ 1 minut până când deconectarea se finalizează și mă readuce la shell-ul meu de utilizator. În acel minut, procesul „su <other_user>” folosește 100% din CPU. Mă pot deconecta puțin mai repede dacă ctrl-c de câteva ori (ceea ce probabil întrerupe tot ce rulează la ieșire/deconectare).

Acest lucru se întâmplă chiar dacă nu am .profile, .bash_profile, .bashrc, .logout etc. în directorul principal ~<other_user>. Apare cu sau cu indicatorul „-l” (shell de conectare).

Aceeași întârziere se întâmplă chiar dacă „su” folosesc /bin/sh (de exemplu, „su <other_user> -s /bin/sh”).

Cu toate acestea, dacă schimb utilizatorul la propriul meu cont (adică „su <user_my_user>”), nu există nicio întârziere la deconectare. De asemenea, rularea „sudo -u <other_user>” nu are întârziere. În special, „sudo -u root bash” care îmi oferă un shell de rădăcină, iese instantaneu (în timp ce „sudo -u root su” rămâne cu un minut sau mai mult).

Aveți idee ce poate cauza o astfel de deconectare întârziată după ce ați sunat la alt utilizator shell? Ce proces(e) sunt declanșate de deconectare/ieșire care ar provoca o astfel de ieșire întârziată?

Rețineți că rulez Ubuntu 18.04.


Rețineți că rulează o „strace”, pare să se atârne de ultima declarație „openat”:

introduceți codul de aici: Procesul 27411 atașat
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 6
openat(AT_FDCWD, "/etc/login.defs", O_RDONLY) = 6
openat(AT_FDCWD, "/proc/sys/kernel/hostname", O_RDONLY|O_CLOEXEC) = 6
openat(AT_FDCWD, "/etc/passwd", O_RDONLY|O_CLOEXEC) = 7
openat(AT_FDCWD, "/run/fscrypt/1002.count", O_RDWR|O_CREAT|O_CLOEXEC, 0600) = 7
openat(AT_FDCWD, "/etc/group", O_RDONLY|O_CLOEXEC) = 7
openat(AT_FDCWD, "/etc/fscrypt.conf", O_RDONLY|O_CLOEXEC) = 7
openat(AT_FDCWD, "/proc/sys/vm/drop_caches", O_WRONLY|O_SYNC|O_CLOEXEC) = 7
+++ ieșit cu 0 +++

Notă: rularea manuală a „echo 3 >| /proc/sys/vm/drop_caches” durează, de asemenea, aproximativ un minut, în timp ce se pare că ar trebui să fie foarte rapidă. Chiar și rularea imediată din nou durează atât de mult atunci când rulați a doua oară. Deci, ce ar putea dura atât de mult pentru a arunca cache-urile?

Și după cum s-a menționat mai sus, încărcarea procesorului crește la ~100% când se întâmplă asta...

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.