Wyszukiwanie w witrynie

Jak wyświetlić listę wszystkich uruchomionych usług w Systemd w systemie Linux


Systemy Linux zapewniają różnorodne usługi systemowe (takie jak zarządzanie procesami, logowanie, syslog, cron itp.) i usługi sieciowe (takie jak zdalne logowanie, poczta e-mail, drukarki, hosting stron internetowych, przechowywanie danych , przesyłanie plików, rozpoznawanie nazw domen (przy użyciu DNS), dynamiczne przydzielanie adresów IP (przy użyciu DHCP) i wiele więcej.

Technicznie rzecz biorąc, usługa to proces lub grupa procesów (powszechnie nazywana demonami) działającymi nieprzerwanie w tle i czekającymi na przychodzące żądania (zwłaszcza od klientów).

Linux obsługuje różne sposoby zarządzania usługami (uruchamianie, zatrzymywanie, ponowne uruchamianie, włączanie automatycznego uruchamiania przy starcie systemu itp.), zwykle za pośrednictwem menedżera procesów lub usług. Większość, jeśli nie wszystkie, nowoczesne dystrybucje Linuksa używają teraz tego samego menedżera procesów: systemd.

Co to jest Systemd?

Systemd to menedżer systemów i usług dla systemu Linux; zamiennik procesu init, który jest zgodny ze skryptami inicjującymi SysV i LSB, a polecenie systemctl jest głównym narzędziem do zarządzaj systemd.

Po co wyświetlać listę uruchomionych usług w systemie Linux?

Znajomość usług uruchomionych w systemie Linux jest niezbędna z kilku powodów. Umożliwia monitorowanie wykorzystania zasobów, rozwiązywanie problemów i efektywne zarządzanie wydajnością systemu. Systemd upraszcza to zadanie, oferując potężne polecenia do zbierania informacji o aktywnych usługach.

W tym przewodniku zademonstrujemy proces tworzenia listy wszystkich uruchomionych usług w Systemd w systemie Linux, zapewniając kompleksowy przewodnik dla użytkowników na wszystkich poziomach doświadczenia.

Wyświetlanie uruchomionych usług w SystemD w systemie Linux

Gdy uruchomisz polecenie systemctl bez żadnych argumentów, wyświetli się lista wszystkich załadowanych jednostek systemd (przeczytaj dokumentację systemd, aby uzyskać więcej informacji o jednostkach systemd), w tym usługi, pokazując ich status (aktywny lub nie) ).

systemctl 

Wyświetl wszystkie jednostki w systemctl

Aby wyświetlić listę wszystkich usług załadowanych w systemie (aktywnych, uruchomionych, zakończonych lub zakończonych niepowodzeniem, użyj komendy list-units i przełącznika --type z wartością usługi.

systemctl list-units --type=service
OR
systemctl --type=service

Aby wyświetlić listę wszystkich załadowanych, ale aktywnych usług, zarówno uruchomionych, jak i tych, które zostały zakończone, możesz dodać opcję --state z wartością active w następujący sposób.

systemctl list-units --type=service --state=active
OR
systemctl --type=service --state=active

Wyświetl listę uruchomionych usług w systemctl

Aby jednak szybko rzucić okiem na 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

Przyjrzyjmy się kluczowym terminom związanym z jednostkami Systemd i ich statusem:

  • Jednostka – jednostką może być usługa, gniazdo, urządzenie lub różne inne elementy.
  • Załaduj – wskazuje, czy jednostka jest załadowana, czy nie. Jednostka może być załadowana, ale niekoniecznie aktywna.
  • Aktywny – pokazuje, czy urządzenie aktywnie działa, czy też napotkało problemy i jest w stanie awarii lub jest nieaktywne.
  • SUB – dostarcza dodatkowych szczegółów na temat konkretnego stanu urządzenia. W przypadku usług może wskazywać, czy usługa jest uruchomiona (uruchomiona), zatrzymana (zakończona) lub napotyka problemy (nie powiodła się).
  • Opis – pomaga użytkownikom zidentyfikować i zrozumieć przeznaczenie urządzenia bez zagłębiania się w szczegółowe pliki konfiguracyjne.

Utwórz alias dla systemctl

Jeśli często używasz poprzedniego polecenia, możesz utworzyć polecenie aliasu w 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 tej chwili użyj polecenia „running_services”, aby wyświetlić listę wszystkich załadowanych, aktywnie działających usług na Twoim serwerze.

running_services	#use the Tab completion 

Znajdź port, na którym nasłuchuje proces

Poza tym ważnym aspektem usług jest port, z którego korzystają. Aby określić port, na którym nasłuchuje proces demona, możesz użyć polecenia netstat lub ss, jak pokazano.

Gdzie flaga -l oznacza wydruk wszystkich gniazd nasłuchujących, -t wyświetla wszystkie połączenia TCP, -u pokazuje wszystkie połączenia UDP, - n oznacza wydruk numerycznych numerów portów (zamiast nazw aplikacji), a -p oznacza pokazanie nazwy aplikacji.

netstat -ltup | grep zabbix_agentd
OR
ss -ltup | grep zabbix_agentd

Piąta kolumna pokazuje gniazdo: Adres lokalny:Port. W tym przypadku proces zabbix_agentd nasłuchuje na porcie 10050.

Lista uruchomionych usług zapory sieciowej

Ponadto, jeśli na serwerze działa usługa zapory sieciowej, która kontroluje sposób blokowania lub zezwalania 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 firewall-cmd< lub polecenie ufw (w zależności od używanej dystrybucji Linuksa), jak pokazano.

firewall-cmd --list-services   [FirewallD]
firewall-cmd --list-ports

sudo ufw status     [UFW Firewall]

To wszystko na teraz! W tym przewodniku pokazaliśmy, jak wyświetlić działające usługi w systemd w systemie Linux. Omówiliśmy także, jak sprawdzić, czy usługa portu nasłuchuje i jak wyświetlić usługi lub porty otwarte w zaporze systemowej.

Czy mają Państwo jakieś uzupełnienia lub pytania? Jeśli tak, skontaktuj się z nami, korzystając z poniższego formularza komentarza.