I sistemi Linux forniscono una varietà di servizi di sistema (come la gestione dei processi, login, syslog, cron, ecc.) E servizi di rete (come accesso remoto, posta elettronica, stampanti, web hosting, archiviazione dati, trasferimento file, risoluzione del nome di dominio (tramite DNS), assegnazione di indirizzi IP dinamici (tramite DHCP) e molto altro).
Tecnicamente, a servizio è un processo o un gruppo di processi (comunemente noti come demoni) in esecuzione continuamente in background, in attesa di richieste in arrivo (soprattutto dai client).
Linux supporta diversi modi di gestire (avvio, arresto, riavviare, abilitare lavvio automatico allavvio del sistema, ecc.), in genere tramite un processo o un gestore di servizi. La maggior parte, se non tutte le distribuzioni Linux moderne, ora utilizzano lo stesso gestore di processi: systemd.
Leggi anche: La storia dietro “init” e “systemd”: Perché “init” doveva essere sostituito con “systemd” in Linux
Systemd è un gestore di sistemi e servizi per Linux; un sostituto immediato per il processo init, che è compatibile con gli script init SysV e LSB e il comando systemctl è lo strumento principale per gestire systemd.
In questa guida, dimostreremo come elencare tutti i servizi in esecuzione in systemd in Linux.
Elenco dei servizi in esecuzione in SystemD in Linux
Quando esegui il comando systemctl senza argomenti, verrà visualizzato un elenco di tutte le unità systemd caricate (leggi la documentazione di systemd per maggiori informazioni sulle unità systemd) inclusi i servizi, mostrando il loro stato (se attivo o non).
# systemctl
Per elencare tutti i servizi caricati sul tuo sistema (attivi; in esecuzione, terminati o non riusciti, usa il sottocomando list-units e --type
switch con un valore di servizio.
# systemctl list-units --type=serviceOR# systemctl --type=service
E per elencare tutti i servizi caricati ma attivi, sia in esecuzione che quelli che sono usciti, puoi aggiungere lopzione --state
con un valore di attivi, come segue.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Ma per dare una rapida occhiata a tutti i servizi in esecuzione (cioè tutti i servizi caricati e in esecuzione attiva), eseguire il comando seguente.
# systemctl list-units --type=service --state=running OR# systemctl --type=service --state=running
Se usi spesso il comando precedente, puoi creare un comando alias nel tuo file ~ / .bashrc come mostrato, per richiamarlo facilmente.
# vim ~/.bashrc
Quindi aggiungi la seguente riga sotto lelenco di alias come mostrato nello screenshot.
alias running_services="systemctl list-units --type=service --state=running"
Salva le modifiche nel file e chiudilo. E dora in poi, utilizza il comando “running_services” per visualizzare un elenco di tutti i servizi caricati e attivi sul tuo server.
# running_services#use the Tab completion
Inoltre, un aspetto importante dei servizi è la porta che usano. Per determinare la porta su cui è in ascolto un processo daemon, puoi usare netstat o ss come mostrato.
Dove il flag -l
significa stampa tutti i socket in ascolto, -t
mostra tutte le connessioni TCP, -u
mostra tutte le connessioni UDP, -n
significa stampare numeri di porta numerici (invece dei nomi delle applicazioni) e -p
significa mostrare il nome dellapplicazione.
# netstat -ltup | grep zabbix_agentdOR# ss -ltup | grep zabbix_agentd
Il la quinta colonna mostra il socket: Local Address: Port. In questo caso, il processo zabbix_agentd è in ascolto sulla porta 10050.
Inoltre, se il tuo server ha un servizio firewall in esecuzione, che controlla come bloccare o consentire il traffico da o verso servizi o porte selezionati, è possibile elencare i servizi o le porte che sono stati aperti nel firewall, utilizzando il comando firewall-cmd o ufw (a seconda delle distribuzioni Linux in uso) come mostrato.
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status