Een Linux-systeem biedt een verscheidenheid aan systeemservices (zoals procesbeheer, login, syslog, cron, enz.) En netwerkservices (zoals inloggen op afstand, e-mail, printers, webhosting, gegevensopslag, bestandsoverdracht, omzetting van domeinnamen (met DNS), dynamische IP-adrestoewijzing (met DHCP) en nog veel meer).
Technisch gezien is een service is een proces of een groep processen (algemeen bekend als daemons) die continu op de achtergrond wordt uitgevoerd, wachtend op verzoeken om binnen te komen (vooral van clients).
Linux ondersteunt verschillende manieren om te beheren (starten, stoppen, herstart, auto-start inschakelen bij het opstarten van het systeem, enz.), meestal via een proces- of servicemanager. De meeste, zo niet alle, moderne Linux-distributies gebruiken nu dezelfde procesmanager: systemd.
Lees ook: het verhaal achter init en systemd: waarom init moet worden vervangen door systemd in Linux
Systemd is een systeem- en servicemanager voor Linux; een vervangende drop-in voor het init-proces, dat compatibel is met SysV- en LSB-init-scripts, en de opdracht systemctl is het primaire hulpmiddel om systemd te beheren.
In deze gids laten we zien hoe we alle actieve services onder systemd in Linux kunnen vermelden.
Running Services onder SystemD in Linux
Als je het systemctl-commando zonder argumenten uitvoert, zal het een lijst van alle geladen systemd-eenheden weergeven (lees de systemd-documentatie voor meer informatie over systemd-eenheden) inclusief services, met hun status (actief of niet).
# systemctl
Om alle geladen services op uw systeem weer te geven (of ze nu actief zijn, actief, afgesloten of mislukt, gebruik dan het subcommando list-units en --type
switch met de waarde service.
# systemctl list-units --type=serviceOR# systemctl --type=service
En om alle geladen maar actieve services weer te geven, zowel actieve als afgesloten, kunt u de optie --state
toevoegen met een waarde van actief, als volgt.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Maar om een snel overzicht te krijgen van alle actieve services (dwz alle geladen en actief actieve services), voert u het volgende commando uit.
# systemctl list-units --type=service --state=running OR# systemctl --type=service --state=running
Als u vaak het vorige commando gebruikt, kunt u een alias commando aanmaken in uw ~ / .bashrc bestand, zoals getoond, om het gemakkelijk op te roepen.
# vim ~/.bashrc
Voeg vervolgens de volgende regel toe onder de lijst met aliassen zoals weergegeven in de schermafbeelding.
alias running_services="systemctl list-units --type=service --state=running"
Sla de wijzigingen op in het bestand en sluit het. En vanaf nu gebruik je het “running_services” commando om een lijst te zien van alle geladen, actief draaiende services op je server.
# running_services#use the Tab completion
Bovendien is een belangrijk aspect van services de poort die ze gebruiken. Om te bepalen op welke poort een daemonproces luistert, kun je de netstat- of ss-tools gebruiken zoals getoond.
Waar de vlag -l
betekent print alle luistersockets, -t
toont alle TCP-verbindingen, -u
toont alle UDP-verbindingen, -n
betekent numerieke poortnummers afdrukken (in plaats van toepassingsnamen) en -p
betekent toepassingsnaam weergeven.
# netstat -ltup | grep zabbix_agentdOR# ss -ltup | grep zabbix_agentd
De vijfde kolom toont de socket: Lokaal adres: poort. In dit geval luistert het proces zabbix_agentd op poort 10050.
Ook als uw server een firewall heeft die draait hoe u verkeer van of naar geselecteerde services of poorten blokkeert of toestaat, kunt u services of poorten weergeven die in de firewall zijn geopend met behulp van het firewall-cmd- of ufw-commando (afhankelijk van de Linux-distributies die u gebruikt) zoals weergegeven. / p>
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status