Et Linux-system tilbyr en rekke systemtjenester (for eksempel prosessadministrasjon, pålogging, syslog, cron, etc.) og nettverkstjenester (for eksempel ekstern pålogging, e-post, skrivere, webhotell, datalagring, filoverføring, oppløsning av domenenavn (ved hjelp av DNS), dynamisk tildeling av IP-adresse (ved hjelp av DHCP) og mye mer).
Teknisk sett en tjenesten er en prosess eller en gruppe prosesser (ofte kjent som demoner) som kjører kontinuerlig i bakgrunnen, og venter på at forespørsler skal komme inn (spesielt fra klienter).
Linux støtter forskjellige måter å administrere (start, stopp, start på nytt, aktiver automatisk start ved systemstart osv.) -tjenester, vanligvis gjennom en prosess- eller tjenestemanager. De fleste om ikke alle moderne Linux-distribusjoner bruker nå samme prosessbehandling: systemd.
Les også: Historien bak init og systemd: Hvorfor init trengte å erstattes med systemd i Linux
Systemd er en system- og servicemanager for Linux; et erstatningsutskift for init-prosessen, som er kompatibel med SysV- og LSB-init-skript, og systemctl-kommandoen er det primære verktøyet for å administrere systemd.
I denne veiledningen vil vi demonstrere hvordan du viser alle kjørende tjenester under systemd i Linux.
Oppføring av kjørende tjenester under SystemD i Linux
Når du kjører systemctl-kommandoen uten noen argumenter, vil den vise en liste over alle lastede systemd-enheter (les systemdokumentasjonen for mer informasjon om systemd-enheter) inkludert tjenester, og vise statusen deres (enten aktiv eller ikke).
# systemctl
Hvis du vil liste opp alle lastede tjenester på systemet ditt (enten det er aktivt, kjører, avsluttes eller mislykkes, bruker du underkommandoen listeenheter og --type
bytte med en verdi for tjenesten.
# systemctl list-units --type=serviceOR# systemctl --type=service
Og for å liste alle lastede men aktive tjenester, både kjørende og de som har avsluttet, kan du legge til --state
alternativet med en verdi av aktiv, som følger.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Men for å få et raskt blikk på alle tjenestene som kjører (dvs. alle lastede og aktivt kjørende tjenester), kjør følgende kommando.
# systemctl list-units --type=service --state=running OR# systemctl --type=service --state=running
Hvis du ofte bruker den forrige kommandoen, kan du opprette en alias-kommando i ~ / .bashrc-filen som vist, for å enkelt påkalle den.
# vim ~/.bashrc
Deretter legger du til følgende linje under listen over aliaser som vist på skjermbildet.
alias running_services="systemctl list-units --type=service --state=running"
Lagre endringene i filen og lukk den. Fra nå av bruker du kommandoen «running_services» for å se en liste over alle lastede, aktivt kjørende tjenester på serveren din.
# running_services#use the Tab completion
Dessuten er et viktig aspekt av tjenester porten de bruker. For å bestemme porten som en demonprosess lytter til, kan du bruke netstat eller ss-verktøy som vist.
Hvor flagget -l
skriv ut alle lytteuttak, -t
viser alle TCP-tilkoblinger, -u
viser alle UDP-tilkoblinger, -n
betyr utskrift av numeriske portnumre (i stedet for applikasjonsnavn) og -p
betyr vis applikasjonsnavn.
# netstat -ltup | grep zabbix_agentdOR# ss -ltup | grep zabbix_agentd
femte kolonne viser kontakten: Lokal adresse: Port. I dette tilfellet lytter prosessen zabbix_agentd på port 10050.
Hvis serveren din har en brannmurstjeneste som kjører, som styrer hvordan du blokkerer eller tillater trafikk til eller fra utvalgte tjenester eller porter, kan du liste opp tjenester eller porter som er åpnet i brannmuren ved hjelp av kommandoen brannmur-cmd eller ufw (avhengig av Linux-distribusjoner du bruker) som vist. / p>
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status