Cum să reduceți timpul de închidere a computerului în linux. Repornire soft și închidere instantanee a computerului în Ubuntu

Buffere de fișiere sisteme Linux sunt stocate în memorie și doar ocazional scrise pe disc. Acest lucru accelerează operațiunile I/O pe disc, dar crește riscul de pierdere a datelor în cazul unei defecțiuni bruște.

Sistemele tradiționale UNIX și Linux au fost foarte solicitante în ceea ce privește procedurile de închidere. Sistemele moderne sunt mai tolerante (mai ales când vine vorba de un sistem de fișiere foarte sigur, cum ar fi ext3fs), dar este mai bine să închideți cu grație dacă este posibil. Oprirea incorectă a computerului poate duce la apariția unor erori subtile, greu de găsit și, uneori, la o blocare completă a sistemului.

Reporniți sistemul la calculator personal- un mijloc de a rezolva aproape toate problemele. Dar atunci când lucrați în Linux, vă sfătuim să vă gândiți mai întâi și abia apoi să reporniți. Problemele în Linux sunt de obicei ascunse și complexe, așa că repornirile dau rezultatul așteptat mult mai rar decât pe alte sisteme. În plus, procesul de repornire Linux durează mult timp, ceea ce este incomod pentru utilizatori.

Este necesar să reporniți atunci când un dispozitiv nou este conectat sau un dispozitiv care funcționează se blochează, astfel încât să nu poată fi inițializat. Dacă fișierul de configurare este modificat, care este interogat doar la pornirea inițială, atunci modificările vor intra în vigoare numai după o repornire. Și, în sfârșit, dacă este imposibil să vă înregistrați în sistem, pur și simplu nu există altă cale de ieșire decât să reporniți.

Dacă unul dintre scripturile de pornire a sistemului este modificat, atunci trebuie să reporniți cel puțin pentru a verifica dacă sistemul funcționează cu succes după modificări. Dacă vreo problemă nu apare în următoarele câteva săptămâni, mai târziu cu greu vă veți aminti detaliile ultimelor modificări.

Spre deosebire de bootstrapping, care se face într-un singur mod, puteți opri și reporni sistemul în diferite moduri:

  • opriți alimentarea;
  • introduceți comanda de oprire;
  • utilizați comenzile stop și reboot;
  • modificați nivelul de rulare al demonului init folosind comanda telinit;
  • executați comanda de oprire pentru a cere sistemului să oprească alimentarea.

Opriți în Linux

Chiar și în sisteme computere desktop oprirea alimentării nu este cea mai bună modalitate de a opri sistemul. Acest lucru poate duce la pierderea datelor și deteriorarea sistemelor de fișiere.

Unele computere au un buton de oprire software care, atunci când este apăsat, execută o serie de comenzi care închid grațios sistemul. Dacă nu sunteți sigur dacă computerul dvs. acceptă această caracteristică, nu încercați să aflați apăsând butonul de pornire în timp ce sistemul funcționează! Vor fi mult mai puține probleme dacă opriți manual sistemul.

Desigur, previziunea este bună în rațiune. În caz de inundație sau incendiu, este mai bine să opriți alimentarea, dacă pur și simplu nu există timp pentru o oprire corectă a sistemului. Pe vremuri, în sălile mașinilor era un buton de urgență, care făcea posibilă oprirea tuturor echipamentelor în același timp.

Comanda închide: modalitatea corectă de a opri sistemul

Comanda de oprire este cea mai sigură și cea mai corectă modalitate de a opri sau reporni sistemul sau de a reveni la modul utilizator unic.

Puteți indica comenzii să întrerupă înainte de a opri sistemul. În timpul așteptării, comanda trimite mesaje utilizatorilor înregistrați la intervale din ce în ce mai descrescătoare, avertizând asupra unui eveniment iminent. În mod implicit, mesajele indică faptul că sistemul se închide și indică timpul rămas până la oprire. Dacă dorește, administratorul poate adăuga propriul său mesaj scurt, care explică de ce sistemul se oprește și aproximativ cât timp va trebui să aștepte înainte de a vă putea conecta din nou. După executarea comenzii de închidere, utilizatorii nu se vor putea autentifica, dar vor vedea mesajul furnizat de administrator.

Comanda de oprire poate fi folosită pentru a specifica ce ar trebui să facă sistemul după executarea comenzii: oprire (-h) sau repornire (-r). De asemenea, puteți specifica dacă o verificare forțată a discului trebuie efectuată după o repornire folosind comanda fsck (-F) sau nu (-f). În mod implicit, Linux va omite automat această verificare dacă sistemele de fișiere au fost demontate corect.

Următoarea comandă reamintește utilizatorilor procedura de service programată și oprește sistemul la 9:30:

$ shutdown -h 09:30 „În jos pentru programatîntreținere. Timpul de nefuncționare estimat este de 1 oră "

De asemenea, puteți seta timpul relativ de oprire. De exemplu, comanda de mai jos va începe procesul de oprire după 15 minute:

$ shutdown -h +15 „În derulare pentru repararea de urgență a discului”.

Comanda oprire: un mod mai ușor de a opri

Comanda Halt efectuează toate operațiunile de bază necesare pentru a opri sistemul.

Este de obicei invocat cu shutdown -h, dar poate fi folosit singur. Comanda înregistrează închiderea, oprește procesele neesențiale, execută apelul de sistem de sincronizare, așteaptă finalizarea scrierilor pe disc și apoi termină nucleul.

Opțiunea -n suprimă apelul de sistem de sincronizare. Comanda halt -n este folosită după restaurarea partiției rădăcină cu comanda fsck, astfel încât nucleul să nu poată suprascrie patch-urile cu versiuni mai vechi ale partiției stocate în cache.

Comanda reporniți: repornire rapidă

Comanda de repornire este aproape identică cu comanda de oprire. Singura diferență este că sistemul repornește și nu se oprește. Modul de repornire este, de asemenea, invocat de comanda shutdown -r. Comanda de repornire acceptă, de asemenea, indicatorul -n.

Comanda telinit: schimbați nivelul de rulare al demonului init

Puteți folosi comanda telinit pentru a instrui daemon-ului init să treacă la un anumit nivel de rulare. De exemplu, comanda

Comanda de oprire oprește sistemul în siguranță. Toți utilizatorii conectați primesc o notificare că sistemul se închide și operațiunile de conectare sunt blocate. Puteți opri sistemul imediat sau după o întârziere specificată.

Închiderea Linux de la Linie de comanda este foarte convenabil, iar mulți utilizatori ai sistemului își controlează computerul prin linia de comandă în astfel de lucruri. Toate procesele sunt mai întâi notificate că sistemul se pregătește să repornească sau să repornească prin SIGTERM. Acest lucru oferă programelor precum vi timp să salveze fișierul care este editat, gestionatorii de e-mail și știri, posibilitatea de a se deconecta și așa mai departe.

Shutdown își face treaba semnalând init pentru a schimba nivelul de rulare. Runlevel 0 este folosit pentru a opri sistemul, runlevel 6 este folosit pentru a reporni sistemul, iar runlevel 1 este folosit pentru a pune sistemul într-o stare în care sarcinile administrative pot fi efectuate (modul utilizator unic). Nivelul de rulare implicit este 1, cu excepția cazului în care sunt specificate opțiunile -h sau -r.

Sistemul dumneavoastră poate avea un set diferit de parametri pentru comanda de oprire; Verificați documentația pentru dispozitiv.

Închiderea Linux din linia de comandă

oprire [-akrhPHfFnc] [-t sec] timp [mesaj]

  1. -a Controlați accesul la comanda de închidere folosind fișierul de acces de control /etc/shutdown.allow. A primi Informații suplimentare consultați secțiunea Control acces de mai jos.
  2. -k Nu opriți, ci trimiteți mesaje de avertizare ca și cum închiderea ar fi fost reală.
  3. -h Spune sistemului să se închidă și apoi să îl oprească.
  4. -P Indică sistemului să se închidă și apoi să se închidă.
  5. -H Dacă este specificată opțiunea -h, această opțiune specifică că sistemul trebuie să pornească în monitorul de pornire pe sistemele care îl acceptă.
  6. -f Omite fsck după repornire.
  7. -F Forțați fsck după repornire.
  8. -n Nu invocați init pentru a încheia procesele; Instruiți oprirea să faceți acest lucru singur.
  • Această opțiune nu este recomandată și rezultatele ei nu sunt întotdeauna previzibile.
  1. -c Anulează în așteptarea închiderii. (Acest lucru nu se aplică pentru „închidere acum”, care nu așteaptă până la închidere.) Nu puteți specifica un argument de timp cu această opțiune, dar puteți specifica un mesaj explicativ pentru a fi trimis tuturor utilizatorilor.
  2. t sec... Spuneți inițialistului să aștepte câteva secunde între trimiterea unui avertisment și a unui semnal de ucidere înainte de a trece la un alt nivel de rulare.
  3. timp Argumentul time specifică când se efectuează operația de oprire.

Ora poate fi formatată în diferite moduri:

În primul rând, poate fi o oră absolută în formatul hh: mm, unde hh este ora (1 sau 2 cifre, de la 0 la 23) și mm este minutul orei (din două cifre).

În al doilea rând, poate fi în formatul + m, unde m este numărul de minute de așteptat.

De asemenea, cuvântul este acum același cu indicarea +0; El oprește imediat sistemul.

  1. Mesaj. Un mesaj trimis tuturor utilizatorilor, împreună cu o notificare standard de oprire.

Detalii

Dacă oprirea este programată pentru viitor, se va crea un fișier de consiliere / etc / nologin, care forțează programe precum login să nu permită noi utilizatori. Acest fișier este generat cu cinci minute înainte de începerea secvenței de oprire. Shutdown elimină acest fișier dacă este oprit înainte de a putea semnala inițializarea (adică a fost anulat sau ceva a mers prost). De asemenea, îl elimină înainte de a apela init pentru a schimba nivelul de rulare.

Indicatorul -f înseamnă „repornire rapidă”. Acest lucru creează doar un fișier de consiliere / fastboot care poate fi verificat de sistem atunci când reapare. Fișierul rc de pornire a sistemului („rc” înseamnă „runcom”, care este prescurtare pentru „run comenzi”) poate verifica prezența acestui fișier și poate decide să nu ruleze fsck deoarece sistemul a fost oprit corect. După aceea, procesul de pornire ar trebui să elimine / fastboot.

Steagul -F înseamnă „force fsck”. Acest lucru creează doar un fișier advisory/forcefsck care poate fi verificat de sistem atunci când reapare. Fișierul boot rc poate verifica dacă fișierul este prezent și decide să ruleze fsck cu indicatorul special „force” pentru a verifica dacă sistemele de fișiere sunt demontate corect. După aceea, procesul de pornire ar trebui să elimine / forcefsck.

Indicatorul -n face ca shutdown să nu apeleze init, ci să distrugă totul rularea proceselor... Închiderea va dezactiva cota, contabilitatea și schimburile și va demonta toate sistemele de fișiere.

Controlul accesului

Shutdown poate fi apelat de la init atunci când este apăsat CTRL-ALT-DEL, dacă există o intrare corespunzătoare în / etc / inittab. Aceasta înseamnă că toți cei care au acces fizic la tastatura consolei, poate închide sistemul.

Pentru a preveni acest lucru, oprirea poate verifica dacă un utilizator autorizat este autentificat. Dacă shutdown este apelat cu argumentul -a (adăugați acest lucru la apelul shutdown în / etc / inittab), acesta verifică dacă fișierul / etc /shutdown.allow este prezent. Apoi compară login-urile din acel fișier cu lista persoanelor care sunt autentificate pe consola virtuală (de la / var / run / utmp). Numai dacă unul dintre utilizatorii autorizați sau root este conectat va avea efect. În caz contrar, va scrie un mesaj

Închidere: nu s-au conectat utilizatori autorizați

Spre consola fizică a sistemului. Formatul /etc/shutdown.allow este un nume de utilizator pe linie. Sunt permise linii goale și linii de comentarii (prefixate cu #). Acest fișier are în prezent o limită de 32 de utilizatori.

Rețineți că dacă /etc/shutdown.allow lipsește, argumentul -a este ignorat.

Oprirea Linux și alimentarea computerului

Opțiunea -H pur și simplu setează variabila de mediu de inițializare INIT_HALT la HALT, iar opțiunea -P pur și simplu setează această variabilă la POWEROFF. Scriptul de închidere care apelează stop ca ultimul lucru din secvența de închidere trebuie să verifice aceste variabile de mediu și să apeleze stop cu parametrii corecti pentru ca acești parametri să aibă efectiv vreun efect.

Fișiere

  • / fastboot
    / etc / inittab
    /etc/init.d/halt
    /etc/init.d/reboot
    /etc/shutdown.allow

Închiderea Linux din linia de comandă: exemple

Programați o oprire a sistemului la 8 dimineața.

Programați o oprire a sistemului la 20:00.

oprire +15 „Actualizarea hardware-ului, timpul de nefuncționare ar trebui să fie minim”

Programați o oprire a sistemului în cincisprezece minute. Împreună cu notificarea obișnuită de oprire a sistemului, utilizatorilor li se va oferi un mesaj descriptiv de actualizare hardware.

Închideți imediat Linux

Opriți sistemul imediat și reporniți automat.

Opriți și opriți automat sistemul imediat.

Comenzi aferente

  • Halt - Opriți computerul.
  • Poweroff - Opriți computerul.
  • Repornire - Opriți computerul.
  • Wall - Trimiteți un mesaj tuturor utilizatorilor conectați.

Traducere dintr-o resursă minunată în engleză speranța computerului.

Dacă mai aveți întrebări pe tema „Închiderea Linux din linia de comandă”, ne puteți scrie în formularul de comentarii de pe site.

Dacă găsiți o eroare, selectați o bucată de text și apăsați Ctrl + Enter.

Să aruncăm o privire la cum să reporniți sau să închideți computerul din linia de comandă. Folosesc asta când instalez un driver sau incarcatura grea pe procesor, interfața nu mai răspunde la acțiunile mele (deși acest lucru se întâmplă extrem de rar). Puteți ucide un proces „lacom” prin linia de comandă, dar nu se știe întotdeauna ce proces este, așa că o soluție rapidă este să reporniți computerul.

Reporniți computerul

Eu fac asta. Mă duc la consolă apăsând comanda rapidă de la tastatură Ctrl + Alt + F1... În consolă, trebuie să introduceți mai întâi numele de utilizator și parola (la introducerea unei parole, caracterele nu sunt afișate). Și execut comanda:

Reporniți Sudo

Va trebui să introduceți din nou parola de administrator și să apăsați Enter. Computerul va reporni.

De asemenea, puteți utiliza comanda pentru a reporni computerul închide, pentru aceasta trebuie să folosiți cheia -r:

Sudo oprire -r acum

Inchide calculatorul

Pentru a opri computerul din linia de comandă, trebuie să rulați comanda:

Oprire Sudo -h acum

De asemenea, puteți opri computerul rulând comanda:

Sudo opri

Și, de asemenea, puteți folosi.

Apoi, SysRq poate ajuta în situațiile cele mai aparent fără speranță, cu excepția cazului în care, desigur, nucleul este într-o „panică”, așa cum este de obicei evidențiat de LED-urile tastaturii care clipesc haotic. Interesant? Apoi citește mai departe.

Tasta SysRq a apărut cu mult înainte ca Windows să înceapă să facă capturi de ecran. IBM a intenționat inițial ca cheia SysRq să comute între aplicații fără a le opri. Dar asta este deja istorie. Linux a adaptat SysRq pentru a oferi utilizatorului acces de urgență la kernel. Dar și aici, totul nu este simplu. Cert este că pentru compatibilitatea cu Windows în mediile grafice Linux, o singură tastă SysRq funcționează ca PrintScreen, iar combinația Alt + SysRq recomandată în manualele de pe consolă, la fel ca în Windows, pune prostește poza ferestrei active în clipboard. Prin urmare, în Linux cu ferestre, cheia SysRq... nici nu există! În locul acestei taste, în mediile grafice Linux, este folosită combinația magică Alt + Ctrl + SysRq + literă / număr latin, ceea ce vă crește semnificativ puterea asupra mașinii.

M - afișează cantitatea de memorie utilizată. Funcționează în Ubuntu dacă preinstalați nivel inalt detaliile ieșirii.

N - afișează o listă de sarcini în timp real. Funcționează și dacă setați în prealabil nivelul de ieșire ridicat.

E - Termină anormal toate procesele, cu excepția init.

I - omoara toate procesele, inclusiv init.

T - tipărește o listă de sarcini pe consolă.

S - Sincronizează toate sistemele de fișiere, scriind toate datele stocate pe hard disk.

R - readuce forțat tastatura la starea de lucru. În acest caz, nucleul începe să lucreze cu tastatura direct, ocolind serverul X și numai în coduri ASCII.

T - afișează o listă de procese. Din nou, funcționează doar la un nivel ridicat de verbozitate.

P - descărcarea registrelor procesorului. Solicitarea poate fi de interes pentru cei care sunt implicați în depanarea software-ului.

Q - Afișează evenimente hard timer. Funcționează dacă gradul de nivel de ieșire este setat la mare.

O - oprește urgent computerul.

B - repornește computerul. Adevărat, se raportează că, cu nucleul 3.8.0-25, nu există nicio repornire, ci o oprire. Dar nu l-am testat eu.

U - Remontează toate sistemele de fișiere numai în citire.

V - restabilește framebuffer-ul consolei. Să presupunem că vizionați un videoclip în consola virtuală (da, Linux, spre deosebire de Windows, permite și acest lucru) și trebuie să vă amintiți urgent ce făceați în consolă înainte de a începe videoclipul. Comanda va restabili framebuffer-ul consolei. În general, ar merita să spunem mai detaliat despre acest lucru amuzant - framebuffer-ul, dar nu în acest articol.

W - Afișează toate sarcinile suspendate, dacă există.

Z - Afișează conținutul buffer-ului de urmărire a nucleului.

Așadar, deodată Linux-ul tău se blochează, astfel încât nici măcar repornirea X-urilor cu Alt + Del + BS nu ajută. Calm, doar calm. În niciun caz nu vă grăbiți să apăsați butonul de resetare de pe carcasa computerului. Există o probabilitate foarte mare să nu pierdeți date atunci când apăsați consecutiv. tastele R-E-I-S-U-B(ține apăsat Alt + Ctrl + SysRq!). Și știi ce? Puteți oricând să opriți instantaneu un computer care funcționează normal apăsând Alt + Ctrl + SysRq + O. Dacă, desigur, nu ți-ai închis programele. :)

Cu toate acestea, se crede că este periculos să faceți disponibil magic SysRq dacă lăsați alți utilizatori să lucreze de la distanță pe mașina dvs. sau dacă lucrați cu el de la distanță. Cert este că semnalul de pauză trimis de la consola la distanță poate fi interpretat ca Alt + SysRq, cu toate consecințele care decurg. Prin urmare, dacă decideți să acordați acces de la distanță mașinii dvs., pentru orice eventualitate, mai întâi resetați variabila kernel.sysrq din configurația sistemului. Puteți, de asemenea, să scrieți un script simplu pe bash și chiar să înșurubați un buton de pe desktop, astfel încât să nu vă deranjați să editați fișierul de control de configurare a sistemului de fiecare dată. Noroc!

Acest articol se adresează celor mai mulți începători Linux și celor care sunt interesați de cum să repornească Linux de pe consolă. Pentru mine, repornirea computerului în terminal sau utilizarea interfeței grafice este elementară, dar aceasta este baza, nu toți începătorii o știu și trebuie să scriu despre asta.

Astăzi ne vom uita la probleme precum comanda de repornire Linux din consolă, repornirea de la distanță și repornirea directă în interfata grafica... Să începem cu o simplă repornire a sistemului.

Acestea fiind spuse, ce ar putea fi mai ușor. Luați în considerare mai întâi să reporniți în Ubuntu Unity. Este suficient să apăsați butonul cu roata de viteză în dreapta colțul de sus ecran și selectați elementul Închide:

Apoi, în fereastra care se deschide, faceți clic pe element:

În mediul desktop Gnome, totul este foarte asemănător cu Unity, dar în KDE trebuie să deschideți meniul principal, să accesați fila ieșireși selectați elementul reîncărcați:

Apoi confirmați repornirea.

Reporniți Linux în Terminal

Și aici domeniul de aplicare este mult mai larg, există aproximativ o duzină de comenzi care pot fi folosite pentru a reporni Linux. Unele au nevoie de privilegii de root, altele nu, unele par simple și ușor de reținut, în timp ce altele sunt lungi și complexe. Le vom analiza pe toate mai jos.

Prima comandă de repornire Linux, cea mai comună și mai simplă:

După cum puteți vedea, utilitarul are nevoie de drepturi de superutilizator. După ce apăsați Enter, computerul se va reporni imediat.

Utilitarul de închidere, care este folosit pentru închidere, vă permite, de asemenea, să reporniți computerul; pentru aceasta, trebuie să îi transmiteți parametrul -r. În plus, puteți specifica și ora de repornire. Acum - 0 sau acum, după un minut +1 după două - +2 și așa mai departe:

sudo shutdown -r +1

În sistemele init compatibile cu Init Scripts existau niveluri de încărcare a sistemului - 0,1,2,3,4,5,6, nivelul 0 însemna oprire, 6 repornire, restul modurilor de operare a sistemului nu ne interesează acum. Puteți comuta între niveluri cu comanda init. Numai că din nou aveți nevoie de drepturi de superutilizator. Prin urmare:

Serviciul de mesaje de sistem dbus poate, de asemenea, reporni computerul:

/ usr / bin / dbus-send --system --print-reply --dest = "org.freedesktop.ConsoleKit" / org / freedesktop / ConsoleKit / Manager org.freedesktop.ConsoleKit.Manager.Restart

Nu mai aveți nevoie de drepturi de superutilizator. Acestea au fost modalitățile obișnuite de a reporni Linux, dar există un alt, non-standard, sau chiar două. Acestea sunt chei SysRq magice. Nucleul Linux monitorizează apăsarea anumitor comenzi rapide de la tastatură și, ca răspuns la acestea, ia acțiunea dorită. În primul rând, activați suportul sysrq:

echo 1> / proc / sys / kernel / sysrq

Este mai bine să faceți acest lucru în avans, deoarece această metodă este utilă atunci când sistemul este înghețat și nu reacționează la nimic:

nano /etc/sysctl.conf

kernel.sysrq = 1

A activa SysRq comenzile rapide țin apăsat Alt + SysRq și apăsați codul tastei. Pentru o repornire normală, se recomandă următoarea secvență: R E I S U B, apăsați tastele în aceeași succesiune la intervale de aproximativ o secundă.

  • R- returnează controlul tastaturii dacă serverul X a fost terminat incorect;
  • E- nucleul trimite semnalul SIGTERM către toate procesele cu excepția init;
  • eu- trimite un semnal SIGKILL la toate procesele cu excepția init;
  • S- nucleul sincronizează sistemele de fișiere, toate datele din cache sunt transferate pe hard disk;
  • U- remontează toate sistemele de fișiere în modul doar citire;
  • B- repornire imediată, fără sincronizare și pregătiri suplimentare.

Înainte de repornire, sistemul așteaptă ca toate procesele să se termine, oprește toate serviciile și demontează și montează sistemele de fișiere în modul numai citire. Aceasta este ceea ce facem apăsând aceste comenzi rapide de la tastatură în secvență. Dar dacă trebuie să reporniți sistemul acum fără să așteptați ca toate procesele, de exemplu, serverul, să se închidă, puteți trimite imediat semnalul B. Astfel: Alt + SysRq + B.

SysRq poate fi folosit fără comenzi rapide de la tastatură prin scriere codul necesar operațiuni pentru fișier / proc / sysrq-trigger:

echo b> / proc / sysrq-trigger

Sistemul va fi repornit ca atare, fără oprirea serviciilor și pregătirea sistemelor de fișiere, astfel încât datele nu salvate se pot pierde, dar Sistemul de fișiere deteriorat.

Repornire Linux de la distanță

Dacă aveți acces la server prin ssh, atunci puteți reporni foarte ușor linux de la distanță folosind una dintre comenzile de mai sus, de exemplu:

ssh [email protected]/ sbin / reporniți

Dar din nou, pentru această operație, trebuie să aveți drepturi root pe un server la distanță.

concluzii

Acum știți cum să reporniți Linux, chiar știți cum să reporniți serverul prin ssh. Dacă aveți întrebări, întrebați în comentarii!

Intrări înrudite: