Hvordan bruke SystemCTL -verktøyet i Linux

Hvordan bruke SystemCTL -verktøyet i Linux
Enten du er en erfaren systemadministrator eller en ny Linux -bruker, er Service Management en av de grunnleggende operasjonene du må utføre. Derfor er det en stor fordel.

Denne opplæringen leder deg gjennom det grunnleggende om tjenesteadministrasjon i Linux og hvordan du bruker SystemCTL for å administrere tjenester, få informasjon om systemenheter og få nyttig informasjon om tilstanden til tjenestene i systemet ditt.

Hva er SystemCTL?

SystemCTL er et Linux-kommandolinjeverktøy som brukes til å kontrollere og administrere SystemD og tjenester. Du kan tenke på SystemCTL som et kontrollgrensesnitt for SystemD Init -tjeneste, slik at du kan kommunisere med SystemD og utføre operasjoner.

SystemCTL er en etterfølger av init.d system; Den inneholder biblioteker, demoner og verktøy du kan bruke til å administrere tjenester i Linux -systemet.

Hva er en tjeneste/enhet?

På SystemD -språk er en tjeneste eller en enhet en ressurs eller et objekt SystemD er klar over og vet hvordan man tar opp.

Selv om det er teknisk riktig å klassifisere en enhet som en tjeneste, har enheter i Systemd en tendens til å være mer abstrakte og ofte bestående av ressursbassenger, filsystemfester, nettverksprotokoller, enheter og naturlige Linux -tjenester.

Enheter er definert i en fil kjent som en enhetsfil. SystemD kan administrere enhetsfiler fra et hvilket som helst sted, men hovedstedet deres er/etc/SystemD/System Directory. Enhetsfiler i denne katalogen er hovedsakelig brukerforsikret. Sammenlignet med andre steder, vil SystemD Manager tilordne høyere forrang til enhetsfiler i katalogen ovenfor.

MERK: Du kan også finne enhetsfiler som ligger i/lib/SystemD/System Directory, som inneholder enhetsfiler levert av systemet og installerte pakker. Forsikre deg om å sjekke begge stedene når du redigerer en enhetsfil.

Systemd enhetstyper

Enhetsfiler er merket med et suffiks i enhetsfilen, som gir administratoren en indikasjon på dets formål basert på suffikset.

Følgende er enhetsfilene som finnes i SystemD.

  • .service - Serviceenhetsfiler definerer hvordan SystemD administrerer en tjeneste. De ender vanligvis på .serviceutvidelse. Serviceenhetsfiler beskriver hvordan du starter, stopper, last inn på nytt og start en tjeneste på nytt og avhengighetene som kreves for å administrere tjenesten.
  • .mål - Målenheter gir synkroniseringspunkter på andre tjenester under oppstart.
  • .skive - Skive enhetsfiler koder for informasjon om SystemD -skiveenheter. Skiveenheter er en del av Linux -kontrollgruppetreet som tillater ressursfordeling og begrensning til prosesser tilknyttet en skive. Du kan lære mer om SystemD Resource Control her.
  • .stikkontakt - En sokkelenhetsfil koder for informasjon om nettverkssokkel, IPC eller et filsystem FIFO-buffer kontrollert og administrert for SystemD, som SystemD bruker for socket-basert aktivering.
  • .enhet - Enhetsenhetskonfigurasjoner definerer en enhetsenhet som er utsatt i SYSFS/UDEV enhets tre.
  • .Timer - Timerenheter definerer en timer administrert og kontrollert av SystemD for planlagt aktivering.
  • .øyeblikksbilde - SNAPSHOT -enhetsfiler tillater tilbakevending av gjeldende tilstand i systemet etter å ha gjort endringer. Vi oppretter dem ved hjelp av SystemD Snapshot -kommandoen.
  • .bytte - Swap -enheter koder for informasjon om bytteplass, for eksempel enhetens navn eller bane for bytteplassen.
  • .montering - Mount enhetsfiler koder for informasjon om monteringspunkter i systemet som administreres av SystemD.
  • .Automount - Dette er enhetsfiler som definerer monteringspunkter som automatisk monteres.

Det er noen av enhetsfilene som administreres av SystemD. Vanligvis fungerer disse enhetsfilene i et system tett sammen for å administrere systemet, tjenestene, demonene og andre ressurser i systemet.

MERK: Det er andre enhetsfiler, men du trenger ikke å bekymre deg mye for dem, med mindre du dykker dypt ned i kjernen.

Liste enhetsfiler

For å se enhetsfilene som er tilgjengelige i systemet, kan du liste opp filene i/lib/systemd/system eller/etc/Systemd/System.

Heldigvis har Systemd en kommando for det. Vi kan utføre kommandoen:

$ sudo systemctl liste-enheter

Å kjøre denne kommandoen vil vise enhetene som er tilgjengelige i systemet.

For å filtrere bare spesifikke enhetsfiler, kan du bruke alternativet -type = [enhetstype]. For å vise tjenesteenhetsfiler bruker vi for eksempel kommandoen:

$ sudo SystemCTL List-Units-Type = Service

Her er et eksempelutgang:

Utgangen fra SystemCTL List-Units-kommandoen bruker en kolonnebasert organisasjonsmetode.

Her er hva hver kolonne representerer.

  • ENHET - Den første kolonnen er enheten.'Dette viser navnet på enhetsfilen.
  • LASTE - Dette viser om enhetsdefinisjonen lastes riktig.
  • AKTIV - Dette viser aktiveringstilstanden på høyt nivå.
  • UNDER - Dette viser aktiveringstilstanden på lavt nivå. Verdiene i denne kolonnen vil avhenge av enhetstype.
  • BESKRIVELSE - Enhetsfilens beskrivelse.

Du kan også filtrere enhetene av deres stater. For eksempel for å bare vise inaktive enheter, bruk kommandoen:

$ sudo SystemCTL List -Units -state = inaktiv

Ovennevnte viser inaktive (eller døde sub) enheter. De fleste enheter i denne tilstanden startes før brukerøktene; De inkluderer Plymouth, nettverksaktiveringstjeneste, redningsmodus, manuell DB og mange flere.

For å vise alle enhetsfilene i systemet, kan du legge til alternativet til List -Units -kommandoen.

$ sudo systemctl liste -enheter -all

Du kan bla listen over tilgjengelige enheter ved å trykke på romtasten.

Hvordan se enhetsfilinnhold

For å se oppføringene og konfigurasjonen i en enhetsfil, kan du fortelle Systemd å ringe CAT -kommandoen og enhetens navn.

For eksempel for å vise innholdet i Plymouth -enheten, bruk kommandoen

$ sudo SystemCTL Cat Plymouth

Denne kommandoen vil dumpe innholdet i filen som vist nedenfor:

Hvordan redigere enhetsfiler

For å redigere enhetsfiler, kan du bruke SystemD -kommandoen etterfulgt av redigeringsalternativet og enhetens navn.

$ sudo SystemCTL Edit Plymouth

Kommandoen vil starte Nano Text Editor, slik at du kan redigere enheten som er spesifisert.

MERK: Med mindre nødvendig, UNNGÅ Redigering av kritiske enhetsfiler som er gitt av systemet.

Administrere tjenester med SystemCTL

Enhetsfiler som ender med .Tjenesten er enkle å administrere ved hjelp av SystemD -verktøyet, SystemCTL. Følgende er operasjoner vi kan utføre med SystemCTL.

Hvordan starte tjenester

For å starte en tjeneste med SystemCTL, kaller vi kommandoen:

$ sudo systemctl start nginx.service

I kommandoen ovenfor ba vi Systemd om å starte Nginx -tjenesten ved hjelp av Nginx.Serviceenhetsfil.

Å bestå full enhetsfilsuffiks med SystemCTL er ikke et krav. Du kan bruke navnet på tjenesten, for eksempel:

$ sudo systemctl start nginx

I de fleste serviceenheter er det ingen output hvis tjenesten starter vellykket. Imidlertid, hvis en feil oppstår, vil SystemD vise feil og statuskode.

Hvordan stoppe tjenester

For å stoppe en tjeneste, bruk stoppargumentet i SystemCTL -kommandoen

$ sudo systemctl stopp nginx

Tilsvarende gir ikke stoppoperasjonen en produksjon etter vellykket gjennomføring.

Hvordan du laster inn tjenester på nytt

Lasting av en tjeneste fungerer ved å stoppe arbeiderprosessene, bruke konfigurasjonsendringer og starte arbeiderprosessene på nytt. Som ikke stenger selve tjenesten.

Denne funksjonen kan være nyttig der tjenester må være online, som tilfellet er med databaser og webservere.

For å laste inn en tjeneste i SystemCTL, bruker vi kommandoen:

$ sudo SystemCTL Reload Nginx

Hvordan starte tjenester på nytt

På den annen side vil omstart stenge tjenesten og arbeiderprosessene og starte dem på nytt. Omstartprosessen kan forårsake noe driftsstans, noe som gjør det veldig aktuelt når feilsøking.

For å starte en tjeneste på nytt, bruk kommandoen:

$ sudo SystemCTL Restart Nginx

Hvordan aktivere tjenester ved oppstart

Hvis du vil at en spesifikk tjeneste skal kjøres under oppstart av systemet, kan du bruke ANable -kommandoen.

For eksempel:

$ sudo systemctl aktiver nginx

Kommandoen ovenfor aktiverer imidlertid ikke tjenesten under en aktiv økt. For å gjøre dette, legg til -nåflagget.

$ sudo SystemCTL Aktiver Nginx -Nå

Hvis du vil aktivere en tilpasset tjeneste du har opprettet, må du forsikre deg om at SystemD kan få tilgang til enhetsfilen. Ikke lagre enhetsfilen i /hjemmekatalog. For tilpassede enhetsfiler, sørg for at du plasserer dem i/etc/Systemd/System.

Hvordan sjekke servicestatus

For å sjekke statusen til en tjeneste i SystemD, bruk statuskommandoen:

$ sudo systemctl status nginx

Denne kommandoen vil vise gjeldende status for tjenesten. Bildet nedenfor viser en aktiv Nginx -tjeneste

Hvis en tjeneste blir stoppet, vil du få en utdata som ligner den som er vist nedenfor:

Konklusjon

I denne guiden diskuterte vi konseptene SystemD og enhetsfiler. SystemD er en kritisk del av Linux, og store Linux -distribusjoner har nå tatt i bruk bruken. Derfor kan det være veldig fordelaktig å vite hvordan man administrerer og administrerer.