Administrere systemtjenester med systemd
Kontroller de langvarige programmene som driver en Linux-server med systemd: start, stopp, aktiver og inspiser tjenester, les loggene deres med journalctl og forstå hvordan enheter inngår i prosesshåndteringen.
Administrere systemtjenester med systemd er en gratis leksjon i Distribusjon av Linux-servere og SSH i praksis på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Distribusjon av Linux-servere og SSH i praksis, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Distribusjon av Linux-servere og SSH i praksis inneholder totalt 4 leksjoner.
Tjenester kontra vanlige prosesser
De har administrert enkeltprosesser og planlagte oppgaver. Men programmene som utgjør en server — webservere, databaser og SSH — kjører som tjenester: bakgrunnsprosesser som skal starte ved oppstart og startes på nytt ved feil.
I moderne Linux administreres tjenester av systemd, system- og tjenesteadministratoren.
Hva systemd administrerer
systemd organiserer alt i enheter. Den vanligste typen er .service-enheten, som beskriver hvordan en bakgrunnsprosess skal kjøres.
Kommandoen systemctl er hovedgrensesnittet Deres for å inspisere og kontrollere disse enhetene.
systemctl --versionKontrollere tjenestestatus
systemctl status viser om en tjeneste kjører, ID-en til hovedprosessen, nylige logglinjer og om tjenesten er aktivert ved oppstart.
Dette er vanligvis den første kommandoen De kjører ved feilsøking av en tjeneste.
systemctl status nginxStarte og stoppe tjenester
De styrer en tjenestes kjørestatus med start, stop og restart. Disse trer i kraft umiddelbart, men endrer ikke oppførselen ved oppstart.
Bruk reload når en tjeneste støtter å lese konfigurasjonen på nytt uten å avslutte tilkoblinger.
sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl stop nginxAktivere tjenester ved oppstart
enable gjør at en tjeneste starter automatisk når serveren starter; disable fjerner den fra oppstarten. Dette er uavhengig av om den kjører akkurat nå.
Det praktiske flagget --now aktiverer og starter tjenesten i ett trinn.
sudo systemctl enable nginx
sudo systemctl enable --now nginx
sudo systemctl disable nginxVise tjenester
For å se hva som er installert og kjører, viser De enhetsfilene eller aktive enheter.
list-units --type=service— tjenester som er lastet inn nålist-unit-files --type=service— alle installerte tjenester og aktiveringsstatusen deres
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=serviceLese logger med journalctl
systemd samler tjenesteutdata i journalen. Spør den med journalctl.
-u nginx— bare denne tjenesten-f— følg direkte-e— hopp til slutten
sudo journalctl -u nginx -f
sudo journalctl -u ssh --since '1 hour ago'Enhetsfilens oppbygning
En tjeneste defineres av en enhetsfil, vanligvis i /etc/systemd/system/ eller /lib/systemd/system/. Den har tre viktige seksjoner: [Unit], [Service] og [Install].
ExecStart-linjen forteller systemd hvilken kommando som skal kjøres.
[Unit]
Description=My App
After=network.target
[Service]
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure
[Install]
WantedBy=multi-user.targetOpprette Deres egen tjeneste
For å kjøre Deres eget program som en tjeneste plasserer De en enhetsfil i /etc/systemd/system/, laster systemd på nytt slik at den ser den nye filen, og aktiverer og starter den deretter.
daemon-reload kreves etter alle endringer i enhetsfiler.
sudo nano /etc/systemd/system/myapp.service
sudo systemctl daemon-reload
sudo systemctl enable --now myappAutomatisk omstart ved feil
En av systemds beste funksjoner er automatisk gjenoppretting. Direktivet Restart= forteller systemd at en krasjet tjeneste skal startes på nytt.
Restart=on-failure— bare etter avslutning med en verdi som ikke er nullRestart=always— hver gang den stopperRestartSec=5— vent før nytt forsøk
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5Beste praksis
Administrer tjenester på en trygg måte:
- Skill mellom kjøring (
start) og oppstart (enable) - Kjør
daemon-reloadetter redigering av enhetsfiler - Bruk
journalctl -util feilsøking, ikke spredte loggfiler - Legg til
Restart=on-failurefor robuste egendefinerte apper
Hurtigsjekk
Test kunnskapene Deres om systemd.
Oppsummering
De kan nå administrere servertjenester med systemd:
status,start,stop,restart,reloadenable/disablefor oppstartsoppførseljournalctl -ufor tjenestelogger- Egendefinerte
.service-enhetsfiler medRestart=for robusthet
Dette kompletterer ferdighetene Deres innen prosess- og oppgaveadministrasjon med langvarige bakgrunnsprosesser.
Lær deg Distribusjon av Linux-servere og SSH i praksis med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 48
Ofte stilte spørsmål
Er leksjonen «Administrere systemtjenester med systemd» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Distribusjon av Linux-servere og SSH i praksis, inkludert «Administrere systemtjenester med systemd», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Distribusjon av Linux-servere og SSH i praksis inneholder totalt 4 leksjoner.
Hva lærer jeg i «Administrere systemtjenester med systemd»?
Kontroller de langvarige programmene som driver en Linux-server med systemd: start, stopp, aktiver og inspiser tjenester, les loggene deres med journalctl og forstå hvordan enheter inngår i prosesshå… Du øver på Distribusjon av Linux-servere og SSH i praksis med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Distribusjon av Linux-servere og SSH i praksis?
Ingen tidligere erfaring er nødvendig. Distribusjon av Linux-servere og SSH i praksis på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Administrere systemtjenester med systemd»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Distribusjon av Linux-servere og SSH i praksis-leksjonen?
Ja. Alle Distribusjon av Linux-servere og SSH i praksis-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Administrere brukere og grupper
- Overvåke systemprosesser
- Planlagte oppgaver med Cron
- Administrere systemtjenester med systemd