Articles

3 commando ‘ s om Linux opnieuw op te starten (plus nog 4 manieren om het veilig te doen)

Linux is volledig in staat om niet weken, maar jaren te draaien, zonder een reboot. In sommige sectoren is dat precies wat Linux doet, dankzij ontwikkelingen als kpatch en kgraph.

Voor laptop-en desktopgebruikers is die metriek echter een beetje extreem. Hoewel het misschien niet een dagelijkse realiteit, het is op zijn minst een wekelijkse realiteit die soms heb je een goede reden om uw machine opnieuw op te starten. En voor een systeem dat niet vaak opnieuw hoeft te worden opgestart, biedt Linux tal van keuzes voor wanneer het tijd is om opnieuw te beginnen.,

begrijp uw opties

voordat u echter verder gaat, een notitie bij het opnieuw opstarten. Rebooten is een uniek proces op elk besturingssysteem. Zelfs binnen POSIX-systemen, kunnen de opdrachten om uit te schakelen en opnieuw op te starten zich anders gedragen als gevolg van verschillende initialisatiesystemen of commando-ontwerpen.

ondanks deze factor zijn twee concepten essentieel. Ten eerste is rebooten zelden vereist op een POSIX-systeem. Je Linux machine kan weken of maanden tegelijk werken zonder een reboot als dat is wat je nodig hebt., Er is geen noodzaak om” opfrissen ” uw computer met een reboot, tenzij specifiek geadviseerd om dit te doen door een software installer of updater. Aan de andere kant, het kan ook geen kwaad om opnieuw op te starten, dus het is aan jou.

ten tweede, herstarten is bedoeld als een vriendelijk proces, waardoor de tijd voor programma ‘ s om af te sluiten, bestanden worden opgeslagen, tijdelijke bestanden worden verwijderd, bestandssysteem journals bijgewerkt, enzovoort. Indien mogelijk, herstarten met behulp van de beoogde interfaces, hetzij in een GUI of een terminal., Als u uw computer dwingt af te sluiten of opnieuw op te starten, loopt u het risico niet-opgeslagen en zelfs recent opgeslagen gegevens te verliezen en zelfs belangrijke systeeminformatie te beschadigen; u moet uw computer alleen maar uitzetten als er geen andere optie is.

klik op de knop

De eerste manier om Linux opnieuw op te starten of af te sluiten is de meest gebruikelijke, en de meest intuïtieve voor de meeste desktopgebruikers, ongeacht hun besturingssysteem: het is de AAN / UIT-knop in de GUI., Omdat uitschakelen en opnieuw opstarten veelvoorkomende taken zijn op een werkstation, kunt u de AAN / UIT-knop (meestal met reboot en afsluiten opties) op een paar verschillende plaatsen vinden., Op het GNOME-bureaublad staat het in het systeemvak:

Het staat ook in het GNOME-activiteitenmenu:

op het KDE-bureaublad staan de aan/uit-knoppen in het menu Toepassingen:

u kunt ook toegang krijgen tot de aan / uit-knoppen van KDE door met de rechtermuisknop op het bureaublad te klikken en de optie verlaten te selecteren, die het venster opent dat u hier ziet:

andere bureaubladen bieden variaties op deze thema ‘ s, maar het algemene idee is hetzelfde: gebruik uw muis om de AAN / UIT-knop te vinden, en klik er dan op., Het kan zijn dat u moet kiezen tussen opnieuw opstarten en uitschakelen, maar uiteindelijk is het resultaat bijna identiek: processen worden gestopt, mooi, zodat gegevens worden opgeslagen en tijdelijke bestanden worden verwijderd, vervolgens worden gegevens gesynchroniseerd met schijven en vervolgens wordt het systeem uitgeschakeld.

druk op de fysieke knop

De meeste computers hebben een fysieke AAN / UIT-knop. Als je op die knop drukt, kan je Linux desktop een power menu weergeven met opties om af te sluiten of opnieuw op te starten., Deze functie wordt geleverd door het subsysteem Advanced Configuration and Power Interface (ACPI), dat communiceert met de firmware van uw moederbord om de status van uw computer te beheren.

ACPI is belangrijk, maar het is beperkt in omvang, dus er is niet veel te configureren vanuit het perspectief van de gebruiker. Gewoonlijk worden ACPI-opties generiek Power genoemd en zijn ze ingesteld op een sane standaard. Als u deze instelling wilt wijzigen, kunt u dit doen in uw systeeminstellingen.

op GNOME, open het systeemvak menu en selecteer activiteiten, en vervolgens Instellingen., Selecteer vervolgens de vermogenscategorie in de linkerkolom, die het volgende menu opent:

in het gedeelte onderbreek & Aan / Uit-knop selecteert u wat u wilt dat de fysieke AAN / UIT-knop doet.

het proces is vergelijkbaar op alle bureaubladen. Bijvoorbeeld, op KDE, het energiebeheer paneel in Systeeminstellingen bevat een optie voor de knop Event Handling.

kde-energiebeheer.jpg

opensource.,com

nadat u hebt geconfigureerd hoe de knopgebeurtenis wordt afgehandeld, volgt het indrukken van de fysieke AAN / UIT-knop van uw computer de gekozen optie. Afhankelijk van uw computer leverancier (of leveranciers van onderdelen, als u uw eigen te bouwen), een druk op de knop kan een lichte tik zijn, of het kan een iets langer druk, dus je zou kunnen hebben om een aantal tests te doen voordat je de knie van het.

pas echter op voor een te lange druk, omdat het uw computer zonder waarschuwing kan afsluiten.,

voer het systemctl Commando

uit als u meer in een terminal opereert dan in een GUI-bureaublad, kunt u het beste herstarten met een commando. In het algemeen zijn rebooten en uitschakelen processen van het init—systeem-de opeenvolging van programma ‘ s die een computer omhoog of omlaag brengen nadat een voedingssignaal (respectievelijk aan of uit) is ontvangen.

op de meeste moderne Linux distributies is systemd het init systeem, dus zowel herstarten als uitschakelen kan worden uitgevoerd via de systemd gebruikersinterface, systemctl., Het systemctl Commando accepteert, naast vele andere opties, halt (stopt de schijfactiviteit maar sluit de stroom niet af) reboot (stopt de schijfactiviteit en stuurt een reset signaal naar het moederbord) en poweroff (stopt de schijfactiviteit, en schakelt vervolgens de stroom uit). Deze commando ‘ s zijn meestal gelijk aan het starten van het doelbestand met dezelfde naam.

bijvoorbeeld, om een reboot te activeren:

$ sudo systemctl start reboot.target

voer het shutdown Commando

traditionele UNIX uit, vóór de dagen van systemd (en voor sommige Linux distributies, zoals Slackware, dat is nu), waren er commando ‘ s specifiek voor het stoppen van een systeem., De shutdown Commando, bijvoorbeeld, kan het uitschakelen van uw machine, maar het heeft verschillende opties om precies te controleren wat dat betekent.

dit commando vereist een tijdsargument, in minuten, zodat shutdown weet wanneer het moet worden uitgevoerd., Onmiddellijk opnieuw wordt opgestart, moet u de -o vlag:

$ sudo shutdown -r now

Aan de macht onmiddellijk:

$ sudo shutdown -P now

Of je kunt gebruik maken van de poweroff commando:

$ poweroff

opnieuw op Te starten na 10 minuten:

$ sudo shutdown -r 10

Het shutdown commando is een veilige manier om uitschakelen of opnieuw opstarten van de computer, waardoor schijven te synchroniseren en processen te beëindigen. Dit commando voorkomt dat nieuwe aanmeldingen binnen de laatste 5 minuten van het afsluiten beginnen, wat vooral handig is op multi-user systemen.,

op veel systemen is het shutdown Commando eigenlijk gewoon een aanroep naar systemctl met de juiste reboot of power off optie.

voer het reboot commando uit

Het reboot commando, op zichzelf, is in principe een snelkoppeling naar shutdown-r now. Vanaf een terminal is dit het gemakkelijkste en snelste reboot Commando:

$ sudo reboot

als uw systeem geblokkeerd wordt voor het afsluiten (misschien door een op hol geslagen proces), kunt u de –force vlag gebruiken om het systeem toch af te sluiten., Deze optie slaat echter het eigenlijke afsluiten over, wat abrupt kan zijn voor draaiende processen, dus het mag alleen worden gebruikt wanneer het shutdown commando je blokkeert om uit te schakelen.

op veel systemen is reboot eigenlijk een aanroep naar systemctl met de juiste reboot of power off optie.

Init

Op Linux-distributies zonder systemd zijn er maximaal 7 runlevels die uw computer begrijpt., Verschillende distributies kunnen elke modus uniek toewijzen, maar over het algemeen, 0 initieert een halt status, en 6 initieert een reboot (de nummers tussenin geven toestanden aan zoals single-user mode, multi-user mode, een GUI prompt, en een tekst prompt).

deze modi zijn gedefinieerd in/etc / inittab op systemen zonder systemd. Op distributies die systemd gebruiken als het init systeem, ontbreekt het /etc/inittab bestand of het is gewoon een plaatshouder.

het telinit commando is de front-end van uw init systeem. Als je systemd gebruikt, dan is dit commando een link naar systemctl met de juiste opties.,

om uw computer uit te schakelen door deze naar runlevel 0 te sturen:

$ sudo telinit 0

om opnieuw op te starten met dezelfde methode:

$ sudo telinit 6

hoe onveilig dit commando is voor uw gegevens hangt volledig af van uw init-configuratie. De meeste distributies proberen je te beschermen tegen het uittrekken van de stekker (of het digitale equivalent daarvan) door runlevels toe te wijzen aan vriendelijke commando ‘ s.

u kunt zelf zien wat er op elk runlevel gebeurt door het lezen van de init scripts gevonden in /etc/rc.d Of / etc / init.d, of door het lezen van de systemd doelen in / lib/systemd/system/.,

Brute force

tot nu toe heb ik alle juiste manieren behandeld om je Linux computer te herstarten of af te sluiten. Om grondig te zijn, voeg ik hier extra methoden toe om een Linux-computer neer te halen, maar deze methoden worden in geen geval aanbevolen. Ze zijn niet ontworpen als een dagelijkse reboot of shut down Commando (reboot en shutdown bestaan voor dat), maar ze zijn geldig middel om de taak te volbrengen.

Als u deze methoden probeert, probeer ze dan in een virtuele machine. Gebruik ze anders alleen in noodgevallen.,

Proc

een stap lager dan het init-systeem is het / proc-bestandssysteem, dat een virtuele weergave is van bijna alles wat op uw computer gebeurt. U kunt bijvoorbeeld uw CPU ‘ s bekijken alsof het tekstbestanden zijn (met cat /proc/cpuinfo), bekijken hoeveel stroom er nog over is in de batterij van uw laptop, of, na een mode, uw systeem opnieuw opstarten.

Er is een voorziening in de Linux kernel voor systeemverzoeken (Sysrq op de meeste toetsenborden)., U kunt direct met dit subsysteem communiceren met behulp van toetscombinaties, idealiter ongeacht in welke staat uw computer zich bevindt; het wordt complex op sommige toetsenborden omdat de Sysrq-sleutel een speciale functiesleutel kan zijn die een andere sleutel nodig heeft om toegang te krijgen (zoals Fn op veel laptops).

een optie die minder waarschijnlijk mislukt, is het gebruik van echo om informatie handmatig in / proc in te voegen., Zorg er eerst voor dat het Sysrq systeem is ingeschakeld:

$ sudo echo 1 > /proc/sys/kernel/sysrq

om te herstarten, kunt u Alt+Sysrq+B gebruiken of type:

$ sudo echo b > /proc/sysrq-trigger

Deze methode is geen redelijke manier om uw machine regelmatig te herstarten, maar het klaart de klus in een oogwenk.

Sysctl

kernelparameters kunnen tijdens runtime met sysctl worden beheerd. Er zijn veel kernelparameters, en je kunt ze allemaal zien met sysctl — all. Waarschijnlijk betekent dit niet veel voor je totdat je weet waar je naar moet zoeken, en in dit geval ben je op zoek naar kernel.paniek.,

u kunt kernelparameters opvragen met de optie –value:

$ sudo sysctl --value kernel.panic

Als u een 0 terug krijgt, dan heeft de kernel die u draait geen speciale instelling, tenminste standaard, om te herstarten na een kernel panic. Die situatie is vrij typerend, omdat het rebooten onmiddellijk na een catastrofale systeemcrash het moeilijk maakt om de oorzaak van de crash te diagnosticeren. Aan de andere kant, systemen die moeten blijven aan het maakt niet uit wat zou kunnen profiteren van een automatische herstart na een kernel mislukking, dus het is een optie die in sommige gevallen wordt ingeschakeld.,

u kunt deze functie activeren als een experiment (als u dit volgt, probeer dit dan in een virtuele machine in plaats van op uw eigenlijke computer):

$ sudo sysctl kernel.reboot=1

als uw computer een kernel paniekaanval krijgt, wordt deze ingesteld om opnieuw op te starten in plaats van geduldig te wachten tot u het probleem kunt diagnosticeren. Je kunt dit testen door een catastrofale crash te simuleren met sysrq. Controleer eerst of Sysrq is ingeschakeld:

$ sudo echo 1 > /proc/sys/kernel/sysrq

en simuleer vervolgens een kernel panic:

$ sudo echo c > /proc/sysrq-trigger

uw computer herstart onmiddellijk.,

herstart verantwoord

Als u al deze opties Kent, betekent dit niet dat u ze allemaal moet gebruiken. Denk goed na over wat je probeert te bereiken, en wat het commando dat je hebt geselecteerd zal doen. Je wilt je systeem niet beschadigen door roekeloos te zijn. Daar zijn virtuele machines voor. Echter, met zo veel opties betekent dat je klaar bent voor de meeste situaties.