Probleem: Actieve Services Bekijken in Linux
Het beheren van services op een Linux-systeem is een taak voor beheerders en gebruikers. Systemctl, het hoofdcommando voor het besturen van systemd, biedt een manier om deze services te beheren en te monitoren. Een overzicht krijgen van alle actieve services kan moeilijk zijn zonder de juiste commando's en opties te kennen.
Alle Actieve Services Weergeven met Systemctl
Basiscommando om Services Weer te Geven
Om alle services die door systemd worden beheerd weer te geven, gebruik je dit commando:
systemctl list-units --type=service
Dit commando toont een tabel met informatie over elke service unit. De output bevat:
- UNIT: De naam van de service unit
- LOAD: Of de unit definitie werd geladen
- ACTIVE: De hoog-niveau unit activatiestatus
- SUB: De laag-niveau unit activatiestatus
- DESCRIPTION: Een korte beschrijving van het doel van de unit
Om alleen actieve services te tonen, voeg je de optie --state=active toe:
systemctl list-units --type=service --state=active
Filteren op Actieve Services
Om alleen de services weer te geven die actief zijn, gebruik je:
systemctl list-units --type=service --state=running
Dit commando filtert inactieve of mislukte services eruit en toont alleen degene die actief zijn op je systeem.
Voor een meer compacte weergave, gebruik je de optie --no-pager:
systemctl list-units --type=service --state=running --no-pager
Dit voorkomt dat de output wordt gepagineerd, wat nuttig is wanneer je de resultaten wilt doorsturen naar andere commando's of bestanden.
Voor een snel overzicht van actieve services zonder extra details, gebruik je:
systemctl list-units --type=service --state=running --plain --no-legend
Dit commando verwijdert de kop- en voettekstinformatie en geeft een schone lijst van actieve services.
Om het aantal actieve services te tellen, stuur je de output door naar wc:
systemctl list-units --type=service --state=running --plain --no-legend | wc -l
Dit commando geeft het totale aantal actieve services op je systeem weer.
Tip: Sorteer actieve services op geheugengebruik
Om te begrijpen welke services de meeste bronnen gebruiken, kun je de actieve services sorteren op geheugengebruik. Dit kan systeembeheerders helpen de systeemprestaties te optimaliseren.
Hier is een commando om actieve services gesorteerd op geheugengebruik weer te geven:
systemctl list-units --type=service --state=running --no-pager | awk '{print $1}' | xargs -I {} systemctl status {} | grep Memory | sort -rnk 3 | head -n 10
Dit commando:
- Geeft alle actieve services weer
- Extraheert de servicenamen
- Haalt de status van elke service op
- Filtert op de geheugengebruik regel
- Sorteert de resultaten op geheugengebruik (hoogste naar laagste)
- Toont de top 10 geheugen-consumerende services
De output ziet er zo uit:
Memory: 1.2G
Memory: 800.5M
Memory: 456.3M
Memory: 234.1M
Memory: 189.7M
Memory: 156.2M
Memory: 98.4M
Memory: 76.9M
Memory: 54.3M
Memory: 43.8M
Geavanceerde Systemctl Commando's voor Servicebeheer
Gedetailleerde Service-informatie Bekijken
Om meer informatie over een service te krijgen, gebruik je het commando systemctl status gevolgd door de servicenaam:
systemctl status service_name
Dit commando geeft een overzicht van de service, waaronder:
- Huidige status (actief, inactief, mislukt)
- Hoofd PID (Proces ID)
- Geheugengebruik
- CPU-gebruik
- Starttijd
- Recente logboekregels
Example: SSH Service Details Bekijken
systemctl status sshd
De output bevat de huidige status van de service, de locatie van het configuratiebestand en recente logboekregels, die helpen bij het oplossen van problemen.
Servicestatus Controleren
Om de status van een service te controleren, gebruik je:
systemctl is-active service_name
Dit commando geeft "active" terug als de service actief is, of "inactive" als dat niet het geval is.
Om te controleren of een service bij het opstarten start:
systemctl is-enabled service_name
Dit geeft "enabled" terug als de service automatisch bij het opstarten start, of "disabled" als dat niet het geval is.
Je kunt ook het commando systemctl show gebruiken om specifieke eigenschappen van een service te krijgen:
systemctl show -p ActiveState service_name
systemctl show -p UnitFileState service_name
Deze commando's tonen de huidige actieve status en of de service is ingeschakeld.
Om alle mislukte services weer te geven:
systemctl --failed --type=service
Dit commando helpt bij het identificeren van services die problemen hebben en mogelijk aandacht nodig hebben.
Alternatieve Methoden om Services Weer te Geven
Het PS Commando Gebruiken
Het commando ps biedt een andere manier om actieve services in Linux weer te geven. Hoewel niet zo gedetailleerd als systemctl, kan het een snel overzicht geven van actieve processen, inclusief services.
Om alle actieve processen, inclusief services, weer te geven:
ps aux
Dit commando toont alle processen voor alle gebruikers in een gedetailleerd formaat. Om te filteren op specifieke services, kun je grep gebruiken:
ps aux | grep service_name
Voor een gefocuste weergave van services kun je gebruiken:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
Dit commando toont het proces-ID, ouderproces-ID, commando, geheugengebruik en CPU-gebruik, gesorteerd op geheugengebruik.
Vergeleken met systemctl biedt ps:
- Real-time procesinformatie
- Meer gedetailleerde gegevens over resourcegebruik
- De mogelijkheid om niet-systemd beheerde processen te zien
Het mist echter systemd-specifieke informatie zoals servicestatussen en afhankelijkheden.
Tip: Aangepaste PS Output
Je kunt de ps output aanpassen om alleen de informatie te tonen die je nodig hebt. Om bijvoorbeeld alleen de PID, commandonaam en geheugengebruik van processen weer te geven, gebruik je:
ps -eo pid,comm,%mem --sort=-%mem | head
Dit commando sorteert processen op geheugengebruik en toont de top 10 geheugen-consumerende processen.
Het Top Commando Gebruiken
Het commando top geeft een dynamische, real-time weergave van actieve processen, inclusief services. Om top te gebruiken:
top
Dit opent een interactieve weergave met:
- Systeemoverzicht (uptime, gemiddelde belasting, CPU-gebruik)
- Proceslijst (standaard gesorteerd op CPU-gebruik)
Om te focussen op services, kun je gebruiken:
top -c -p $(pgrep -d',' -f service_name)
Dit commando toont alleen de processen die gerelateerd zijn aan de opgegeven service.
Voordelen van het gebruik van top:
- Real-time updates van systeem- en procesinformatie
- Interactieve interface voor sorteren en filteren
- Mogelijkheid om trends in resourcegebruik in de tijd te zien
Beperkingen zijn onder andere:
- Minder service-specifieke informatie vergeleken met
systemctl - Kan meer systeembronnen vereisen voor continue monitoring
Zowel ps als top vullen systemctl aan door verschillende weergaven te bieden van actieve services en processen, waardoor een beter begrip van systeemactiviteit mogelijk is.
Example: Apache Webserver Monitoren
Om de Apache webserver te monitoren met top, kun je gebruiken:
top -c -p $(pgrep -d',' -f apache2)
Dit commando toont real-time informatie over alle Apache processen, inclusief hun CPU- en geheugengebruik. Het is nuttig voor het bijhouden van Apache's resourceverbruik tijdens periodes met veel verkeer.





