În Ubuntu 18,19,20 sistemul hibernează
comanda cere sudo
pentru executarea sa:
Permisiune „systemctl suspend” vs „systemctl hibernate”.
Pentru a dezactiva solicitarea parolei systemctl hibernare
comanda ar trebui adăugată la lista sudoers (/etc/sudoers.tmp
)
Utilizare sudo visudo
comandă și adăugați la sfârșitul fișierului următoarea linie:
<nume_utilizator> ALL=NOPASSWD: /usr/bin/systemctl hibernare
Dar acum există o eroare Meniu dezactivat mai simplu
extensie. Hibernarea este efectuată în ea de systemctl hibernare
, nu de sudo systemctl hibernare
după cum este necesar. Această implementare este în dosar [email protected]/extension.js
Am creat problema corespunzătoare pentru această extensie:
Eroare în Ubuntu 20.04: apăsarea butonului [Hibernare] vă cere să introduceți parola înainte de a efectua hibernarea
Ultimul commit a fost făcut acum aproximativ 1 an. Deci extensia nu este acceptată activ.
Mai jos sunt detaliile complete despre problema cu soluția de soluție:
Comportament asteptat
Presare Hibernează
se execută butonul sudo systemctl hibernare
.
Dacă există un utilizator adecvat în lista sudoers (/etc/sudoers.tmp
editat de sudo visudo
):
<nume_utilizator> ALL=NOPASSWD: /usr/bin/systemctl hibernare
acțiunea de hibernare se efectuează imediat după apăsare Hibernează
buton.
Rezultat actual
Apăsarea butonului [Hibernare] vă cere să introduceți parola utilizatorului pentru a efectua autorizarea pentru acțiune.
În jurnalul de sistem (mai puțin /var/log/syslog
) există o eroare - „Eșuat la hibernarea sistemului prin logind: Acces refuzat”:
.
02:51:06 Tgnome-shell[1983]: st_widget_get_theme_node apelat pe widget-ul [0x564b127b6d00 StWidget:last-child] care nu este în stadiu.
02:51:06 gnome-shell[1983]: st_widget_get_theme_node apelat pe widget-ul [0x564b12781480 StBoxLayout ("")] care nu este în stadiu.
02:51:13 systemd[1735]: Aplicație pornită lansată de gnome-shell.
02:51:13 gnome-shell[5729]: Hibernarea sistemului prin login: Acces refuzat
02:51:27 gnome-shell[5729]: Nu s-a pornit hibernate.target: Acces refuzat
02:51:27 gnome-shell[5729]: Consultați jurnalele de sistem și „starea systemctl hibernate.target” pentru detalii.
După introducerea parolei, acțiunea de hibernare este probabil efectuată de not systemctl hibernare
ci o altă comandă. Nu sunt sigur, dar poate fi pe lângă pm-hibernare
sau hibernează
comenzi - ceea ce nu este recomandat.
Diferența dintre „pm-hibernate” și „systemctl hibernate”
Un răspuns destul de scurt la aceasta ar fi că systemd este menținut activ, în timp ce pm-utils nu este.
De fapt, pm-utils nu a fost actualizat din 2010, așa că aș considera acest software atât antic, cât și depășit.
Este recomandat să utilizați systemctl din acest moment.
Diferența dintre „systemctl hibernate” și „hibernate”:
Comanda hibernate a fost înlocuită cu systemctl hibernate. Se recomandă utilizarea systemctl hibernate. Comanda hibernate este încă disponibilă în sistem din motive de compatibilitate.
În Ubuntu 18,19,20 sistemul hibernează
comanda cere sudo
pentru executarea sa:
Permisiune „systemctl suspend” vs „systemctl hibernate”.
În implementarea SimplerOffMenu
extensie în Hibernează
butonul folosit de handler
systemctl hibernare
, nu sudo systemctl hibernare
care este necesar pentru a rezolva această problemă.
Fix
Schimbare extensie.js
fișier după cum urmează:
funcția FuncHibernate(widget, eveniment) {
Main.overview.hide(); încerca {
//fix start: adăugat sudo
//Util.trySpawnCommandLine('systemctl hibernate');
Util.trySpawnCommandLine('sudo systemctl hibernate');
//sfarsit fix
} prinde (eră) {
Main.notify("Eroare" + err);
}
}
Fix extensie.js
fisierul este Aici.
Soluție
Pentru a remedia această problemă în Ubuntu 20.04 după ce extensia este deja instalată, trebuie să facă următoarele:
Schimbați scriptul JS al extensiei care a fost instalată aici:
/home/<your_user_name>/.local/share/gnome-shell/extensions/[email protected]/extension.js
(puteți găsi locația extensie.js
dosar de sudo find /* -name "extension.js"
)
Apoi adauga sudo
așa cum este descris în remedierea de mai sus și protejați fișierul.
Pentru a aplica remedierea ar putea fi suficient doar să salvați fișierul. Eu pentru orice eventualitate am executat instrucțiunea de la Aici:
- A dezactivat și a activat extensia,
apăsat butonul de configurare pornit pagina de extensie
- Presat
Alt
+F2
, a intrat r
și apăsat introduce
- Deconectat și autentificat