Systemd: Far til alle andre processer
Et Linux og ethvert andet * nix-system starter altid en proces, der er far til alle andre processer. Når du bruger Systemd, er denne proces systemd, processen kaldes altid 'init' uanset init-system. Når systemd kører, starter det dæmoner, der kører delsystemerne. Dæmonerne styrer, hvilke ressourcer du har, og hvilke systemer der er åbne. Din loginprompt er en tjeneste, der administreres af systemd. Systemd starter mange andre tjenester, og det monterer også alle dine diske, inklusive snapmonteringer.
Hvordan styrer du, hvad der starter?
Først og fremmest havde det tidligste init-system runlevels, som mange læsere vil genkende. Runlevel 1 var single user mode, 2 multi-user mode uden netværk og 3-5 multi-user og grafisk. At indstille runlevel til 0 betød stop og 6 betød genstart. Udviklere af systemd fandt, at disse niveauer var uklare, så ændrede det til at blive kaldt mål. Mål er ikke nøjagtigt de samme, men har en lignende funktion. Når et bestemt mål kører, kører en bestemt samling enheder. Mere om enheder senere.
Indstilling af "runlevel", kaldet et mål.
Du kan ændre målet, mens du kører, for eksempel kan du bruge en terminal til at indstille dit mål til flerbruger. Dette vil stoppe din GUI, X eller Wayland, men lade dig og andre logge ind med en tekstkonsol. Brug følgende kommando.
$ systemctl isoler flerbruger.målEller hvis du vil starte dit skrivebord, skal du bruge følgende kommando i stedet.
$ systemctl isolere grafisk.målHvad du virkelig er interesseret i er, hvordan du starter det rigtige niveau, du kan finde ud af, hvad du har lige nu på denne måde.
$ systemctl get-defaultFor at ændre standardindstillingen.
$ systemctl sæt-standard grafisk.målDenne kommando får faktisk mange enheder og tjenester til at starte, når du starter din computer. Det kan være en god idé at starte eller stoppe en enkelt tjeneste.
START, stop, aktivering og deaktivering af en tjeneste.
Det er her, du har en chance for at ændre, hvad der foregår ved opstart og under normal drift. I modsætning til målene er enheder specielle for en bestemt tjeneste. For at stoppe en tjeneste bruger du 'systemctl stop', ligesom du kan bruge 'start' og 'genstart'. For at starte en service ved opstart bruger du 'aktiver', for at stoppe den 'deaktivere'. Vælg en tjeneste, og start og stop den, mens den kører.
$ systemctl status kopper.serviceDenne kommando viser status for tjenesten, den viser også en liste over handlinger, der er udført af systemet vedrørende tjenesten. Brug kommandoen nedenfor for at stoppe tjenesten.
$ systemctl stopkopper.serviceTjenesten stoppes nu for din nuværende session. For at ændre det til ikke at starte ved næste boot skal du deaktivere.
$ systemctl deaktiver kopper.serviceBemærk, at du kun kunne deaktivere tjenesten, dette ville ikke have nogen indflydelse på din nuværende situation. Tjenesten fortsætter bare. Ved næste opstart starter den dog ikke tjenesten.
Systemd styrer også beslag, enheder, stikkontakter og mere. Enheder er lavere nede og lettere at forstå, hvis du tidligere har behandlet en Linux. Du kan også indstille disse selv, men den mest effekt på boot er at kontrollere tjenester.
Hvordan tilføjer du dine egne scripts?
Du kan tilføje dine egne scripts ganske let, de detaljer, der er interessante at vide, er, hvordan du får dit script eller din tjeneste til at afhænge af andre. Dette demonstreres pænt i denne wifi-CV-servicefil.
[Enhed]Beskrivelse = Genstart netværksadministrator ved genoptagelse
Efter = suspendere.mål
Efter = dvale.mål
Efter = hybrid-søvn.mål
[Service]
Type = oneshot
ExecStart = / bin / systemctl genstart netværksadministrator.service
[Installere]
WantedBy = suspendere.mål
WantedBy = dvale.mål
WantedBy = hybrid-søvn.mål
Denne kode opretter en tjeneste, der sker en gang (oneshot) efter de tre mål, der er nævnt i koden. Koden, der udføres, er i dette tilfælde en enkelt kommando. Du kan lige så godt pege ExecStart på et script, du vælger.
Konklusion
Ændring af dit system, især hvordan det starter, kan du gøre selv, men pas på, at dette har mange konsekvenser for hver tjeneste, så sørg for at din kode er stabil og hurtig at udføre.