Systemy Linux zapewniają różnorodne usługi systemowe (takie jak zarządzanie procesami, logowanie, syslog, cron itp.) Oraz usługi sieciowe (takie jak zdalne logowanie, poczta e-mail, drukarki, hosting, przechowywanie danych, transfer plików, rozpoznawanie nazw domen (przy użyciu DNS), dynamiczne przypisywanie adresów IP (przy użyciu DHCP) i wiele więcej).
Technicznie, a usługa to proces lub grupa procesów (powszechnie znanych jako demony) działających w tle, oczekujących na przychodzące żądania (szczególnie od klientów).
Linux obsługuje różne sposoby zarządzania (start, stop, restart, włączanie autostartu przy starcie systemu itp.), zazwyczaj za pośrednictwem menedżera procesów lub usług. Większość, jeśli nie wszystkie, współczesne dystrybucje Linuksa używają teraz tego samego menedżera procesów: systemd.
Przeczytaj także: Historia za „init” i „systemd”: Dlaczego „init” musi być zastąpiony przez „systemd” w Linux
Systemd to menedżer systemu i usług dla Linuksa; zamiennik typu drop-init dla procesu init, który jest zgodny ze skryptami inicjującymi SysV i LSB, a polecenie systemctl jest podstawowym narzędziem do zarządzania systemem.
W tym przewodniku pokażemy, jak wyświetlić listę wszystkich usług działających w systemie systemd w systemie Linux.
Lista usług działających w systemie SystemD w Linux
Kiedy uruchomisz polecenie systemctl bez żadnych argumentów, wyświetli listę wszystkich załadowanych jednostek systemd (przeczytaj dokumentację systemd, aby uzyskać więcej informacji o jednostkach systemd), w tym usług, pokazując ich status (czy są aktywne, czy nie).
# systemctl
Aby wyświetlić listę wszystkich załadowanych usług w systemie (aktywnych; działających, zakończonych lub zakończonych niepowodzeniem, użyj komendy list-units i --type
z wartością usługi.
# systemctl list-units --type=serviceOR# systemctl --type=service
Aby wyświetlić listę wszystkich załadowanych, ale aktywnych usług, zarówno działających, jak i tych, które zostały zamknięte, możesz dodać opcję --state
z wartością aktywnych w następujący sposób.
# systemctl list-units --type=service --state=activeOR# systemctl --type=service --state=active
Aby jednak szybko sprawdzić wszystkie działające usługi (tj. Wszystkie załadowane i aktywnie działające usługi), uruchom następujące polecenie.
# systemctl list-units --type=service --state=running OR# systemctl --type=service --state=running
Jeśli często używasz poprzedniego polecenia, możesz utworzyć polecenie aliasu w swoim pliku ~ / .bashrc, jak pokazano, aby łatwo je wywołać.
# vim ~/.bashrc
Następnie dodaj następujący wiersz pod listą aliasów, jak pokazano na zrzucie ekranu.
alias running_services="systemctl list-units --type=service --state=running"
Zapisz zmiany w pliku i zamknij go. Od teraz użyj polecenia „running_services”, aby wyświetlić listę wszystkich załadowanych, aktywnie działających usług na serwerze.
# running_services#use the Tab completion
Poza tym ważnym aspektem usług jest używanego portu. Aby określić port, na którym nasłuchuje proces demona, możesz użyć narzędzi netstat lub ss, jak pokazano.
Gdzie flaga -l
oznacza wypisz wszystkie nasłuchujące gniazda, -t
wyświetla wszystkie połączenia TCP, -u
pokazuje wszystkie połączenia UDP, -n
oznacza wyświetlanie numerycznych numerów portów (zamiast nazw aplikacji), a -p
oznacza wyświetlanie nazwy aplikacji.
# netstat -ltup | grep zabbix_agentdOR# ss -ltup | grep zabbix_agentd
piąta kolumna przedstawia gniazdo: Adres lokalny: Port. W tym przypadku proces zabbix_agentd nasłuchuje na porcie 10050.
Ponadto, jeśli serwer ma uruchomioną usługę zapory, która kontroluje jak zablokować lub zezwolić na ruch do lub z wybranych usług lub portów, możesz wyświetlić listę usług lub portów, które zostały otwarte w zaporze, używając polecenia firewall-cmd lub ufw (w zależności od używanych dystrybucji Linuksa), jak pokazano.
# firewall-cmd --list-services # firewall-cmd --list-ports$ sudo ufw status