Systemtjenester spiller en avgjørende rolle i hvordan et Linux-system fungerer, og håndterer ulike oppgaver og prosesser i bakgrunnen.systemctl>er et kraftig kommandolinjeverktøy som lar brukere administrere disse tjenestene effektivt. I denne artikkelen vil vi utforske det grunnleggende om bruksystemctl>for å starte, stoppe, starte på nytt, aktivere, deaktivere og vise status for tjenester i et Linux-miljø.
Hva er systemctl?
Før du går inn i serviceadministrasjon, er det viktig å forstå det grunnleggendesystemctl>. Denne kommandoen brukes til å kontrollere systemd system og service manager, som er en sentral komponent i moderne Linux-distribusjoner.
systemctl [command] [unit]>
Her,
-
command>: Handling som skal utføres (f.eks. start, stopp, start på nytt, aktiver, deaktiver). -
unit>: Tjenesten eller enheten som skal påvirkes.
Systemctl er en kontroller eller verktøyet til Systemd (et init-system med et sett med programmer som kjøres i bakgrunnen), med hjelpefunksjoner i administreringstjenester, Disse kommandoene utføres i modusrot hvis du ikke roter systemet i modus, og ber om passordet til root.
Hva er en tjeneste?
En tjeneste innen databehandling er en bakgrunnsprosess som utfører spesifikke oppgaver og funksjoner uten brukerintervensjon. Tjenester starter ofte automatisk under systemoppstart og kjører kontinuerlig for å tilby funksjoner som nettservering, fildeling eller systemovervåking. De administreres av operativsystemet og kan startes, stoppes eller startes på nytt etter behov. Tjenester bidrar til å sikre at viktige operasjoner er konsekvent tilgjengelige. Eksempler inkluderer webservere som Apache, databaseservere liker MySQL, og systemloggingstjenester.
Hva er en demon?
En daemon er en bakgrunnsprosess som kjører kontinuerlig på et Linux- eller Unix-system. Den utfører oppgaver uten direkte brukerinteraksjon, og starter ofte automatisk ved oppstart. Vanlige eksempler inkluderer webservere, databaseservere og systemovervåkingsverktøy. Demoner har vanligvis navn som slutter på d, somhttpd>ellersshd>. De hjelper til med å administrere systemfunksjoner og -tjenester effektivt.
Hva er init-systemet?
Init-systemet er den første prosessen som kjører når et Linux-system starter opp og er ansvarlig for å initialisere systemet. Den administrerer systemtjenester og prosesser, håndterer start, stopp og omstart. Vanlige init-systemer inkluderer SysVinit, Upstart og systemd. Init-systemet sørger for at alle nødvendige tjenester kjører riktig og administrerer avhengigheter mellom dem. Den fortsetter å kjøre i bakgrunnen for å overvåke og administrere systemprosesser gjennom hele systemets drift.
Enheter i systemd
I systemd er enheter de grunnleggende objektene som systemd administrerer og kontrollerer. De representerer systemressurser som tjenester, tidtakere, enheter og monteringspunkter. Hver enhet er definert av en konfigurasjonsfil med et spesifikt suffiks, som.service>for tjenester eller.timer>for tidtakere. Enheter kan startes, stoppes, aktiveres eller deaktiveres ved hjelp av systemctl-kommandoer. De er avgjørende for å definere hvordan systemet starter opp og administrerer ulike prosesser og ressurser.
.serviceenheter i systemd
Systemd.service>enheter er konfigurasjonsfiler som brukes til å administrere tjenester på Linux-systemer. De definerer hvordan og når tjenester skal startes, stoppes og startes på nytt. Hver.service>filen inneholder detaljer som tjenestens navn, beskrivelse og kommandoen som skal kjøres. Disse filene er vanligvis plassert i/etc/systemd/system>eller/lib/systemd/system>. Å administrere dem innebærer kommandoer somsystemctl start>,systemctl stop>, ogsystemctl enable>.
Hvordan finne alle systemenhetene i systemet?
For å liste opp tilgjengelige systemenheter eller liste alle tjenester i Linux bruker vi følgende kommando:
systemctl list-unit-files --type service -all>
Hvordan starte en systemtjeneste i Linux
Syntaks:
konverter streng til interger
sudo systemctl start service.service>
Kommandoen start tjener til å starte (aktivere) en eller flere enheter spesifisert på kommandolinjen.
Eksempel:
sudo systemctl start mariadb>

Kommando Start
Hvordan stoppe en systemtjeneste i Linux
Syntaks:
sudo systemctl stop service.service>
Kommandostoppet tjener til å stoppe tjenesten eller (deaktivere) en eller flere enheter spesifisert på kommandolinjen.
Eksempel:
sudo systemctl stop mariadb>

Kommando Stopp og Status
Hvordan vise status for en systemtjeneste i linux
Syntaks:
sudo systemctl status service.service>
Kommandostatusen tjener til å kontrollere statusen til tjenesten. Vis kortfattet kjøretidsstatusinformasjon om en eller flere enheter, etterfulgt av de siste loggdataene fra journalen. Vis systemstatus hvis ingen enheter er spesifisert.
Eksempel:
sudo systemctl status mariadb>

Kommandostatus
Hvordan starte en systemtjeneste på nytt i Linux
Syntaks:
sudo systemctl restart service.service>
Kommandoen restart tjener til å starte tjenesten på nytt. Stopp og start deretter en eller flere enheter spesifisert på kommandolinjen. Hvis enhetene ikke kjører ennå, vil de startes.
Eksempel:
sudo systemctl restart mariadb>

Kommando omstart
Hvordan aktivere en systemtjeneste i Linux
Syntaks:
sudo systemctl enable name_service.service>
Enable-kommandoen tjener til å utføre tjenesten siden initialiseringen består av en eller flere enheter eller enhetsforekomster. Dette vil lage et sett med symbolkoblinger , som kodet i [Install]-delen av de angitte enhetsfilene. systemadministratorkonfigurasjonen lastes inn på nytt (på en måte som tilsvarer daemon-reload), for å sikre at endringene tas i betraktning umiddelbart.
Eksempel
sudo systemctl enable mariadb>

Kommando Aktiver

Kommandostatus
Slik deaktiverer du en systemtjeneste i Linux
Syntaks:
sudo systemctl disable name_service.service>
Deaktiver kommandoen tjener til å trekke tilbake tjenesten siden initialiseringen av en eller flere enheter. Dette fjerner alle symbolkoblinger til enhetsfilene som støtter de spesifiserte enhetene fra enhetskonfigurasjonskatalogen og angrer derfor eventuelle endringer som er gjort ved å aktivere eller koble.
Eksempel:
c# datetime
sudo systemctl disable mariadb>

Kommando deaktiver

Kommandostatus
Slå av eller start systemet på nytt ved hjelp av systemctl
Start systemet på nytt: Den instruerersystemd>for å starte hele systemet på nytt. Alle tjenester stoppes, og systemet går gjennom en fullstendig avslutningsprosess før det startes på nytt.
sudo systemctl reboot>
Slå av systemet: Den forteller systemd å slå av maskinen. Alle tjenester og prosesser stoppes, og systemet er trygt slått av.
sudo systemctl shutdown>
journalctl
journalctl>er en kommando som brukes i Linux-systemer for å spørre og vise logger frasystemd>journal, som er en systemtjeneste som samler inn og lagrer loggdata. Her er en enkel veiledning for hvordan du brukerjournalctl>:
journalctl -n 10>brukes til å vise de siste 10 oppføringene (linjene) fra systemd-journalen. Her er en oversikt over hva hver del av kommandoen gjør:
-
journalctl>: Påkallerjournalctl>kommando, som brukes til å spørre og vise logger fra systemd-journalen. -
-n 10>: Angir antall linjer som skal vises. I dette tilfellet,-n 10>instruererjournalctl>for å vise de siste 10 oppføringene fra journalen.
journalctl -n 10>
datatyper i java
Å sikre en tjeneste ved hjelp av systemd er en viktig praksis for å beskytte systemet mot potensielle sårbarheter og uautorisert tilgang. Her er en forenklet veiledning for hvordan du oppnår dette:
1. Forstå tjenesteenhetsfiler
- Tjenestekonfigurasjon : Hver tjeneste i systemd administreres av en enhetsfil, vanligvis plassert i
/etc/systemd/system/>. Disse filene definerer hvordan tjenesten fungerer, inkludert oppstartsadferd, ressursgrenser og sikkerhetsinnstillinger.
2. Begrens tjenestetillatelser
- Bruker- og gruppetillatelser : Spesifiser brukeren og gruppen som tjenesten kjører under. Unngå å bruke root-brukeren når det er mulig for å minimere virkningen av sikkerhetsbrudd.
3. Bruk systemd sikkerhetsfunksjoner
- PrivateTmp : Aktiver privat
/tmp>og/var/tmp>kataloger for tjenesten for å hindre informasjonslekkasje mellom ulike tjenester. - ProtectSystem og ProtectHome : Angi disse alternativene for å begrense tilgangen til henholdsvis systemkataloger og brukerhjemmekataloger for å forbedre systemsikkerheten.
- ReadOnlyPaths og ReadWritePaths : Spesifiser hvilke kataloger tjenesten kan lese fra eller skrive til. Begrensning av skrivetilgang kan forhindre utilsiktede endringer i kritiske filer.
4. Begrens ressursbruk
- Begrens CPU og minne : Bruk
CPUQuota>ogMemoryLimit>alternativer for å begrense tjenestens CPU- og minnebruk, og forhindre angrep av ressursutmattelse.
5. Aktiver nettverkskontroller
- Begrens nettverkstilgang : Bruke
RestrictAddressFamilies>,IPAddressAllow>, ogIPAddressDeny>alternativer for å kontrollere nettverkstilgang for tjenesten, og begrense eksponeringen for potensielle trusler.
6. Angi filsystemtillatelser
- Filsystemtillatelser : Sørg for at tjenestens filer og kataloger har passende tillatelser (
chmod>) og eierskap (chown>) for å forhindre uautorisert tilgang.
7. Oppdater og overvåk regelmessig
- Hold systemet oppdatert : Oppdater systemet og tjenesteprogramvaren regelmessig for å korrigere sikkerhetssårbarheter og sikre at sikkerhetstiltakene dine forblir effektive.
- Overvåk logger : Overvåk systemd journal logger (
journalctl>) for mistenkelige aktiviteter eller sikkerhetsrelaterte hendelser, og iverksette passende tiltak om nødvendig.
Konklusjon
Vi diskuterte systemctl som er et viktig kommandolinjeverktøy for å administrere systemtjenester i Linux, og spiller en avgjørende rolle i oppgaver som å starte, stoppe, starte på nytt, aktivere og deaktivere tjenester. Denne artikkelen ga en omfattende guide til systemctl, som dekker syntaks og nøkkelkommandoer. Fra å liste opp tilgjengelige systemenheter til å aktivere eller deaktivere automatisk oppstart, bidrar hver kommando til effektiv serviceadministrasjon. Artikkelen tok også opp vanlige spørsmål, og ga praktiske løsninger for oppgaver som å sjekke tjenestestatus, starte, stoppe og starte tjenester på nytt, og aktivere eller deaktivere automatisk oppstart. Totalt sett er det viktig å forstå og mestre systemctl-kommandoer Linux-administratorer for å sikre stabilitet og optimal ytelse av systemene deres.
Systemctl – Vanlige spørsmål
Hva er en Linux-tjeneste?
En Linux-tjeneste er en bakgrunnsprosess eller applikasjon som kjører uavhengig av brukerinteraksjon, gir spesifikk funksjonalitet eller utfører systemoppgaver. Det administreres av init-systemet, vanligvis systemdisert, og kan startes, stoppes og administreres ved hjelp av kommandoer som
systemctl>.
Hva er forskjellen mellom Systemctl og service?
systemctl>er et kommandolinjeverktøy som brukes til å administrere systemtjenester, mensservice>er en symbolsk kobling tilsystemctl>på mange systemer, noe som gir kompatibilitet med eldre init-skript.
Hvordan sjekke tjenestestatus i Linux?
Bruk `
systemctl status `>for å se om tjenesten kjører, aktiv (nylig stoppet) eller inaktiv (aldri startet). Dette avslører viktig informasjon som minnebruk og aktive tilkoblinger.
Hvordan starter, stopper, starter jeg en tjeneste på nytt?
For å starte , bruk :
sudo systemctl start>For å stoppe , bruk :
sudo systemctl stop>Å starte på nytt , bruk :
sudo systemctl restart>Merk : Husk å bytte ut
>med det faktiske tjenestenavnet.
Hvordan får jeg en tjeneste til å starte automatisk ved oppstart?
Bruk
sudo `>systemctl enable `>for å angi at tjenesten skal starte automatisk når systemet starter opp.For å deaktivere automatisk oppstart, bruk `
sudo systemctl disable `>.