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