Systemtjänster spelar en avgörande roll för hur ett Linux-system fungerar och hanterar olika uppgifter och processer i bakgrunden.systemctl>är ett kraftfullt kommandoradsverktyg som låter användare hantera dessa tjänster effektivt. I den här artikeln kommer vi att utforska grunderna för att användasystemctl>för att starta, stoppa, starta om, aktivera, inaktivera och visa status för tjänster i en Linux-miljö.
Vad är systemctl?
Innan du går in i servicehantering är det viktigt att förstå grundernasystemctl>. Detta kommando används för att styra systemd system och service manager, som är en central komponent i moderna Linux-distributioner.
systemctl [command] [unit]>
Här,
-
command>: Åtgärd som ska utföras (t.ex. starta, stoppa, starta om, aktivera, inaktivera). -
unit>: Tjänsten eller enheten som ska påverkas.
Systemctl är en styrenhet eller nyttan av Systemd (ett init-system med en uppsättning program som körs i bakgrunden), med hjälpmedel i hantera tjänster, Dessa kommandon körs i mode root om du inte är mode som rotar systemet och begär lösenordet för root.
Vad är en tjänst?
En tjänst inom datoranvändning är en bakgrundsprocess som utför specifika uppgifter och funktioner utan användarinblandning. Tjänster startar ofta automatiskt under systemstart och körs kontinuerligt för att tillhandahålla funktioner som webbservering, fildelning eller systemövervakning. De hanteras av operativsystemet och kan startas, stoppas eller startas om efter behov. Tjänster hjälper till att säkerställa att väsentlig verksamhet är konsekvent tillgänglig. Exempel inkluderar webbservrar som Apache, databasservrar som MySQL, och systemloggningstjänster.
Vad är en demon?
En demon är en bakgrundsprocess som körs kontinuerligt på ett Linux- eller Unix-system. Den utför uppgifter utan direkt användarinteraktion, ofta startar automatiskt vid uppstart. Vanliga exempel är webbservrar, databasservrar och systemövervakningsverktyg. Demoner har vanligtvis namn som slutar med d, somhttpd>ellersshd>. De hjälper till att hantera systemfunktioner och tjänster effektivt.
Vad är init-systemet?
Init-systemet är den första processen som körs när ett Linux-system startar upp och ansvarar för att initiera systemet. Den hanterar systemtjänster och processer, hanterar deras start, stopp och omstart. Vanliga init-system inkluderar SysVinit, Upstart och systemd. Init-systemet ser till att alla nödvändiga tjänster körs korrekt och hanterar beroenden mellan dem. Den fortsätter att köras i bakgrunden för att övervaka och hantera systemprocesser under hela systemets drift.
Enheter i systemd
I systemd är enheter de grundläggande objekten som systemd hanterar och kontrollerar. De representerar systemresurser som tjänster, timers, enheter och monteringspunkter. Varje enhet definieras av en konfigurationsfil med ett specifikt suffix, som.service>för tjänster eller.timer>för timers. Enheter kan startas, stoppas, aktiveras eller inaktiveras med systemctl-kommandon. De är viktiga för att definiera hur systemet startar och hanterar olika processer och resurser.
.serviceenheter i systemd
Systemd.service>enheter är konfigurationsfiler som används för att hantera tjänster på Linux-system. De definierar hur och när tjänster ska startas, stoppas och startas om. Varje.service>filen innehåller detaljer som tjänstens namn, beskrivning och kommandot som ska köras. Dessa filer finns vanligtvis i/etc/systemd/system>eller/lib/systemd/system>. Att hantera dem innebär kommandon somsystemctl start>,systemctl stop>, ochsystemctl enable>.
Hur hittar man alla systemd-enheter i systemet?
För att lista tillgängliga systemenheter eller lista alla tjänster i Linux använder vi följande kommando:
systemctl list-unit-files --type service -all>
Hur man startar en systemtjänst i Linux
Syntax:
java boolesk
sudo systemctl start service.service>
Kommandot start tjänar till att starta (aktivera) en eller flera enheter som anges på kommandoraden.
Exempel:
sudo systemctl start mariadb>

Kommando Start
Hur man stoppar en systemtjänst i Linux
Syntax:
sudo systemctl stop service.service>
Kommandot stopp tjänar till att stoppa tjänsten eller (avaktivera) en eller flera enheter som anges på kommandoraden.
Exempel:
sudo systemctl stop mariadb>

Kommando Stopp och Status
Hur man visar status för en systemtjänst i linux
Syntax:
sudo systemctl status service.service>
Kommandostatusen tjänar till att kontrollera tjänstens status. Visa kortfattad körtidsstatusinformation om en eller flera enheter, följt av de senaste loggdata från journalen. Om inga enheter anges, visa systemstatus.
Exempel:
sudo systemctl status mariadb>

Kommandostatus
Hur man startar om en systemtjänst i Linux
Syntax:
sudo systemctl restart service.service>
Kommandot omstart tjänar till att starta om tjänsten som körs. Stoppa och starta sedan en eller flera enheter som anges på kommandoraden. Om enheterna inte är igång ännu kommer de att startas.
Exempel:
sudo systemctl restart mariadb>

Kommandot Starta om
Hur man aktiverar en systemtjänst i Linux
Syntax:
sudo systemctl enable name_service.service>
Enable-kommandot tjänar till att exekvera tjänsten sedan initieringen består av en eller flera enheter eller enhetsinstanser. Detta kommer att skapa en uppsättning av symboliska länkar , som kodas i avsnitten [Installera] i de angivna enhetsfilerna. systemhanterarens konfiguration laddas om (på ett sätt som motsvarar daemon-reload), för att säkerställa att ändringarna beaktas omedelbart.
Exempel
fötter vs fot
sudo systemctl enable mariadb>

Kommando Aktivera

Kommandostatus
Hur man inaktiverar en systemtjänst i Linux
Syntax:
sudo systemctl disable name_service.service>
Inaktiveringskommandot tjänar till att dra tillbaka tjänsten sedan initieringen av en eller flera enheter. Detta tar bort alla symboliska länkar till enhetsfilerna som backar de angivna enheterna från enhetens konfigurationskatalog och ångrar därför alla ändringar som gjorts genom att aktivera eller länka.
Exempel:
sudo systemctl disable mariadb>

Kommando inaktivera

Kommandostatus
Stäng av eller starta om systemet med systemctl
Starta om systemet: Den instruerarsystemd>för att starta om hela systemet. Alla tjänster stoppas och systemet går igenom en fullständig avstängningsprocess innan den startas om.
sudo systemctl reboot>
Stäng av systemet: Den säger åt systemd att stänga av maskinen. Alla tjänster och processer stoppas och systemet stängs av på ett säkert sätt.
sudo systemctl shutdown>
journalctl
journalctl>är ett kommando som används i Linux-system för att fråga och visa loggar frånsystemd>journal, som är en systemtjänst som samlar in och lagrar loggningsdata. Här är en enkel guide om hur du använderjournalctl>:
journalctl -n 10>används för att visa de senaste 10 posterna (raderna) från systemd-journalen. Här är en uppdelning av vad varje del av kommandot gör:
-
journalctl>: Åberoparjournalctl>kommando, som används för att fråga och visa loggar från systemd-journalen. -
-n 10>: Anger antalet rader som ska visas. I detta fall,-n 10>instruerarjournalctl>för att visa de 10 senaste posterna från journalen.
journalctl -n 10>
Att säkra en tjänst med systemd är en viktig praxis för att skydda ditt system mot potentiella sårbarheter och obehörig åtkomst. Här är en förenklad guide om hur du gör detta:
1. Förstå Service Unit-filer
- Servicekonfiguration : Varje tjänst i systemd hanteras av en enhetsfil, vanligtvis placerad i
/etc/systemd/system/>. Dessa filer definierar hur tjänsten fungerar, inklusive dess startbeteende, resursbegränsningar och säkerhetsinställningar.
2. Begränsa tjänstebehörigheter
primitiva datatyper i java
- Användar- och gruppbehörigheter : Ange användaren och gruppen som tjänsten körs under. Undvik att använda root-användaren när det är möjligt för att minimera effekten av säkerhetsöverträdelser.
3. Använd systemd säkerhetsfunktioner
- PrivatTmp : Aktivera privat
/tmp>och/var/tmp>kataloger för tjänsten för att förhindra informationsläckage mellan olika tjänster. - ProtectSystem och ProtectHome : Ställ in dessa alternativ för att begränsa åtkomst till systemkataloger respektive användarhemkataloger för att förbättra systemsäkerheten.
- ReadOnlyPaths och ReadWritePaths : Ange vilka kataloger tjänsten kan läsa från eller skriva till. Begränsning av skrivåtkomst kan förhindra oavsiktliga ändringar av viktiga filer.
4. Begränsa resursanvändning
- Begränsa CPU och minne : Använda sig av
CPUQuota>ochMemoryLimit>alternativ för att begränsa tjänstens CPU- och minnesanvändning, vilket förhindrar attacker från resursutmattning.
5. Aktivera nätverkskontroller
- Begränsa nätverksåtkomst : Använd
RestrictAddressFamilies>,IPAddressAllow>, ochIPAddressDeny>alternativ för att kontrollera nätverksåtkomst för tjänsten, vilket begränsar dess exponering för potentiella hot.
6. Ställ in filsystembehörigheter
- Filsystembehörigheter : Se till att tjänstens filer och kataloger har lämpliga behörigheter (
chmod>) och ägande (chown>) för att förhindra obehörig åtkomst.
7. Uppdatera och övervaka regelbundet
- Håll systemet uppdaterat : Uppdatera regelbundet ditt system och din tjänstprogramvara för att korrigera säkerhetssårbarheter och se till att dina säkerhetsåtgärder förblir effektiva.
- Övervaka loggar : Övervaka systemd journalloggar (
journalctl>) för alla misstänkta aktiviteter eller säkerhetsrelaterade händelser och vidta lämpliga åtgärder om det behövs.
Slutsats
Vi diskuterade systemctl som är ett viktigt kommandoradsverktyg för att hantera systemtjänster i Linux, som spelar en avgörande roll i uppgifter som att starta, stoppa, starta om, aktivera och inaktivera tjänster. Den här artikeln gav en omfattande guide till systemctl, som täckte dess syntax och nyckelkommandon. Från att lista tillgängliga systemenheter till att aktivera eller inaktivera automatisk start, varje kommando bidrar till effektiv servicehantering. Artikeln tog också upp vanliga frågor och erbjöd praktiska lösningar för uppgifter som att kontrollera tjänstens status, starta, stoppa och starta om tjänster samt aktivera eller inaktivera automatisk start. Sammantaget är det viktigt att förstå och behärska systemctl-kommandon Linux-administratörer för att säkerställa stabilitet och optimal prestanda för sina system.
Systemctl – Vanliga frågor
Vad är en Linux-tjänst?
En Linux-tjänst är en bakgrundsprocess eller applikation som körs oberoende av användarinteraktion, tillhandahåller specifik funktionalitet eller utför systemuppgifter. Det hanteras av init-systemet, vanligtvis systemat, och kan startas, stoppas och hanteras med kommandon som
systemctl>.
Vad är skillnaden mellan Systemctl och tjänst?
systemctl>är ett kommandoradsverktyg som används för att hantera systemd services, whileservice>är en symbolisk länk tillsystemctl>på många system, vilket ger kompatibilitet med äldre init-skript.
Hur kontrollerar man tjänstens status i Linux?
Använd `
systemctl status `>för att se om tjänsten är igång, aktiv (nyligen stoppad) eller inaktiv (aldrig startad). Detta avslöjar viktig information som minnesanvändning och aktiva anslutningar.
Hur startar, stoppar, startar jag om en tjänst?
För att starta , använda sig av :
sudo systemctl start>För att stoppa , använda sig av :
sudo systemctl stop>Att starta om , använda sig av :
sudo systemctl restart>Notera : Kom ihåg att byta ut
>med det faktiska tjänstens namn.
Hur får jag en tjänst att starta automatiskt vid uppstart?
Använda sig av
sudo `>systemctl enable `>för att ställa in tjänsten att starta automatiskt när systemet startar.För att inaktivera automatisk start, använd `
sudo systemctl disable `>.