systemd

Systemd - Hvordan det starter systemet ditt

Systemd - Hvordan det starter systemet ditt
Systemd ble utviklet da utviklere fant ut at det ikke var mulig å starte systemet parallelt. De eldre systemene går gjennom systemets oppstartsfiler en etter en. Dette kan føre til at oppstarten stopper når du venter på ressurser som er treg. Et eksempel på dette er når en prosess må ha nettverket i gang. Bruken av nettverket er veldig treg, andre ressurser trenger ikke å vente. Dette problemet kan avbøtes på andre måter, men med systemd gjøres all oppstart parallelt der det er mulig. Resultatet skal være en mye raskere oppstart for komplekse systemer, som inkluderer skrivebordssystemet ditt.

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ål

Eller hvis du vil starte skrivebordet, bruker du følgende kommando i stedet.

$ systemctl isolate grafisk.mål

Det 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-default

For å endre standardinnstillingen.

$ systemctl standard grafisk.mål

Denne 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.service

Denne 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.service

Tjenesten er nå stoppet for din nåværende økt. For å endre det til ikke å starte ved neste oppstart, bruk deaktiver.

$ systemctl deaktivere kopper.service

Legg 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.

Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...
Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...