Et Linux-system leverer en række systemtjenester (såsom processtyring, login, syslog, cron osv.) Og netværkstjenester (såsom fjernlogin, e-mail, printere, webhosting, datalagring, filoverførsel, domænenavnopløsning (ved hjælp af DNS), dynamisk IP-adressetildeling (ved hjælp af DHCP) og meget mere).
Teknisk set en service er en proces eller gruppe af processer (almindeligvis kendt som dæmoner), der kører kontinuerligt i baggrunden og venter på, at anmodninger kommer ind (især fra klienter).
Linux understøtter forskellige måder at administrere (start, stop, genstart, aktiver automatisk start ved systemstart osv.) -tjenester, typisk gennem en proces- eller servicemanager. De fleste, hvis ikke alle moderne Linux-distributioner bruger nu den samme procesmanager: systemd.
Læs også: Historien bag init og systemd: Hvorfor init skal erstattes med systemd i Linux
Systemd er en system- og servicemanager til Linux; en drop-in erstatning for init-processen, som er kompatibel med SysV- og LSB-init-scripts, og systemctl-kommandoen er det primære værktøj til at styre systemd.
I denne vejledning vil vi demonstrere, hvordan man viser alle kørende tjenester under systemd i Linux.
Liste over kørende tjenester under SystemD i Linux
Når du kører systemctl-kommandoen uden argumenter, viser den en liste over alle indlæste systemd-enheder (læs systemdokumentationen for at få flere oplysninger om systemd-enheder) inklusive tjenester, der viser deres status (hvad enten det er aktivt eller ikke).
# systemctl
Hvis du vil liste alle indlæste tjenester på dit system (hvad enten det er aktivt, kører, afsluttes eller mislykkes, skal du bruge underkommandoen liste-enheder og --type
skift med en serviceværdi.
# systemctl list-units --type=serviceOR# systemctl --type=service
Og for at liste alle indlæste men aktive tjenester, både kørende og dem, der er afsluttet, kan du tilføje --state
med en værdi af aktiv som følger.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Men for at få et hurtigt overblik over alle kørende tjenester (dvs. alle indlæste og aktivt kørende tjenester), skal du køre følgende kommando.
# systemctl list-units --type=service --state=running OR# systemctl --type=service --state=running
Hvis du ofte bruger den forrige kommando, kan du oprette en alias-kommando i din ~ / .bashrc-fil som vist for nemt at påberåbe den.
# vim ~/.bashrc
Tilføj derefter følgende linje under listen over aliaser som vist på skærmbilledet.
alias running_services="systemctl list-units --type=service --state=running"
Gem ændringerne i filen og luk den. Brug fremover kommandoen “running_services” til at få vist en liste over alle indlæste, aktivt kørende tjenester på din server.
# running_services#use the Tab completion
Desuden er et vigtigt aspekt af tjenester den port, de bruger. For at bestemme den port, som en dæmonproces lytter til, kan du bruge netstat- eller ss-værktøjerne som vist.
Hvor flag -l
udskriv alle lyttestik, -t
viser alle TCP-forbindelser, -u
viser alle UDP-forbindelser, -n
betyder udskrive numeriske portnumre (i stedet for applikationsnavne) og -p
betyder vis applikationsnavn.
# netstat -ltup | grep zabbix_agentdOR# ss -ltup | grep zabbix_agentd
femte kolonne viser soklen: Lokal adresse: Port. I dette tilfælde lytter processen zabbix_agentd på port 10050.
Også, hvis din server har en firewall-tjeneste, der styrer hvordan du blokerer eller tillader trafik til eller fra udvalgte tjenester eller porte, kan du liste tjenester eller porte, der er åbnet i firewall ved hjælp af kommandoen firewall-cmd eller ufw (afhængigt af de Linux-distributioner, du bruger) som vist.
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status