Systemd: Far til alle andre prosesser
Et Linux og ethvert annet * nix-system starter alltid en prosess som er faren til alle andre prosesser. Når du bruker Systemd, er denne prosessen systemd, prosessen kalles alltid 'init' uavhengig av init-system. Når systemd er i gang, starter det demonene som kjører delsystemene. Demonene styrer hvilke ressurser du har og hvilke systemer som er åpne. Din påloggingsprompt er en tjeneste som administreres av systemd. Systemd starter mange andre tjenester, og den monterer også alle diskene dine, inkludert snapmonteringer.
Hvordan styrer du hva som starter?
Først og fremst hadde det tidligste init-systemet runlevels som mange lesere vil kjenne igjen. Runlevel 1 var enbrukermodus, to flerbrukermodus uten nettverk og 3-5 flerbrukere og grafiske. Å sette runlevel til 0 betydde stopp og 6 betydde omstart. Utviklere av systemd fant at disse nivåene var uklare, så endret det til å bli kalt mål. Målene er ikke helt like, men har en lignende funksjon. Når et bestemt mål kjører, kjører en bestemt samling enheter. Mer om enheter senere.
Sette “runlevel”, kalt et mål.
Du kan endre målet mens du kjører, for eksempel kan du bruke en terminal til å sette målet ditt til flerbrukere. Dette vil stoppe GUI, X eller Wayland, men la deg og andre logge på med en tekstkonsoll. Bruk følgende kommando.
$ systemctl isolere flerbruker.målEller hvis du vil starte skrivebordet, bruker du følgende kommando i stedet.
$ systemctl isolate grafisk.målDet du virkelig er interessert i er hvordan du starter riktig nivå, du kan finne ut hva du har akkurat nå på denne måten.
$ systemctl get-defaultFor å endre standardinnstillingen.
$ systemctl standard grafisk.målDenne kommandoen får faktisk mange enheter og tjenester til å starte når du starter datamaskinen. Det kan være lurt å starte eller stoppe en enkelt tjeneste.
START, stopp, aktivering og deaktivering av en tjeneste.
Det er her du har sjansen til å endre hva som skjer under oppstart og under normal drift. I motsetning til målene er enheter spesielle for en bestemt tjeneste. For å stoppe en tjeneste bruker du 'systemctl stop', du kan også bruke 'start' og 'start på nytt'. For å starte en tjeneste ved oppstart bruker du 'aktiver', for å stoppe den 'deaktivere'. Velg en tjeneste og start og stopp den mens den kjører.
$ systemctl status kopper.serviceDenne kommandoen viser status for tjenesten, den viser også en liste over handlinger som er utført av systemet angående tjenesten. For å stoppe tjenesten, bruk kommandoen nedenfor.
$ systemctl stoppekopper.serviceTjenesten er nå stoppet for din nåværende økt. For å endre det til ikke å starte ved neste oppstart, bruk deaktiver.
$ systemctl deaktivere kopper.serviceLegg merke til at du bare kan deaktivere tjenesten, dette vil ikke ha noen innvirkning på din nåværende situasjon. Tjenesten fortsetter bare. Ved neste oppstart vil den imidlertid ikke starte tjenesten.
Systemd styrer også monteringer, enheter, stikkontakter og mer. Enheter er lavere nede og lettere å forstå hvis du har håndtert en Linux tidligere. Du kan også angi disse selv, men mest effekt på oppstart er å kontrollere tjenester.
Hvordan legger du til dine egne skript?
Du kan legge til dine egne skript ganske enkelt, detaljene som er interessante å vite er hvordan du gjør skriptet eller tjenesten din avhengig av andre. Dette er pent demonstrert i denne wifi-CV-tjenestefilen.
[Enhet]Beskrivelse = Start nettverksadministrator på nytt ved CV
Etter = suspendere.mål
Etter = dvale.mål
Etter = hybrid-søvn.mål
[Service]
Type = oneshot
ExecStart = / bin / systemctl start nettverksadministrator på nytt.service
[Installere]
WantedBy = suspendere.mål
WantedBy = dvalemodus.mål
WantedBy = hybrid-søvn.mål
Denne koden oppretter en tjeneste som skjer en gang (oneshot) etter de tre målene som er nevnt i koden. Koden som utføres er i dette tilfellet en enkelt kommando. Du kan like godt peke ExecStart på et skript du velger.
Konklusjon
Hvis du endrer systemet, spesielt hvordan det starter opp, kan du gjøre det selv, men pass på at dette har mange konsekvenser for hver tjeneste, så sørg for at koden din er stabil og rask å utføre.