Vyhledávání na webu

Jak vypsat všechny běžící služby pod Systemd v Linuxu


Systémy Linux poskytují různé systémové služby (jako je správa procesů, přihlášení, syslog, cron atd.) a síťové služby (jako je vzdálené přihlášení, e-mail, tiskárny, webhosting, úložiště dat , přenos souborů, překlad doménových jmen (pomocí DNS), dynamické přidělování IP adres (pomocí DHCP) a mnoho dalšího).

Technicky je služba proces nebo skupina procesů (běžně známých jako démoni), které nepřetržitě běží na pozadí a čekají na požadavky (zejména od klientů).

Linux podporuje různé způsoby správy (spouštění, zastavování, restartování, povolení automatického spouštění při spouštění systému atd.) služeb, obvykle prostřednictvím správce procesů nebo služeb. Většina, ne-li všechny moderní distribuce Linuxu nyní používá stejný správce procesů: systemd.

Co je Systemd?

Systemd je správce systému a služeb pro Linux; náhrada za proces init, který je kompatibilní se skripty SysV a LSB a příkaz systemctl je primárním nástrojem pro spravovat systemd.

Proč vypisovat spuštěné služby v Linuxu?

Znalost běžících služeb na vašem systému Linux je životně důležitá z několika důvodů. Umožňuje vám monitorovat využití zdrojů, odstraňovat problémy a efektivně řídit výkon systému. Systemd tento úkol zjednodušuje tím, že nabízí výkonné příkazy pro shromažďování informací o aktivních službách.

V této příručce předvedeme proces výpisu všech spuštěných služeb pod Systemd v Linuxu a poskytneme komplexní návod pro uživatele všech úrovní zkušeností.

Výpis spuštěných služeb pod SystemD v Linuxu

Když spustíte příkaz systemctl bez jakýchkoliv argumentů, zobrazí se seznam všech načtených jednotek systemd (další informace o jednotkách systemd naleznete v dokumentaci systemd) včetně služeb s uvedením jejich stavu (zda jsou aktivní nebo ne ).

systemctl 

Seznam všech jednotek v systemctl

Chcete-li zobrazit seznam všech načtených služeb ve vašem systému (ať už aktivních, spuštěných, ukončených nebo neúspěšných, použijte dílčí příkaz list-units a přepínač --type s hodnotou služby.

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

A chcete-li vypsat všechny načtené, ale aktivní služby, spuštěné i ukončené, můžete přidat možnost --state s hodnotou active následovně.

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

Seznam spuštěných služeb v systemctl

Chcete-li však získat rychlý pohled na všechny spuštěné služby (tj. všechny načtené a aktivně spuštěné služby), spusťte následující příkaz.

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

Podívejme se na klíčové pojmy související s jednotkami Systemd a jejich stavem:

  • Jednotka – Jednotkou může být služba, zásuvka, zařízení nebo různé jiné entity.
  • Load – Označuje, zda je jednotka načtena nebo ne. Jednotka může být načtena, ale nemusí být nutně aktivní.
  • Aktivní – Zobrazuje, zda je jednotka aktivně spuštěna nebo zda došlo k problémům a zda je ve stavu selhání nebo nečinnosti.
  • SUB – Poskytuje další podrobnosti o konkrétním stavu jednotky. U služeb může indikovat, zda je služba spuštěna (běží), zastavena (ukončena) nebo dochází k problémům (selhání).
  • Popis – Pomáhá uživatelům identifikovat a pochopit účel jednotky, aniž by se museli ponořit do podrobných konfiguračních souborů.

Vytvořte alias pro systemctl

Pokud často používáte předchozí příkaz, můžete vytvořit alias příkaz v souboru ~/.bashrc, jak je znázorněno, a snadno jej vyvolat.

vim ~/.bashrc

Poté přidejte následující řádek pod seznam aliasů, jak je znázorněno na snímku obrazovky.

alias running_services='systemctl list-units  --type=service  --state=running'

Uložte změny do souboru a zavřete jej. Od této chvíle použijte příkaz „running_services“ k zobrazení seznamu všech načtených a aktivně spuštěných služeb na vašem serveru.

running_services	#use the Tab completion 

Najděte port, na kterém proces poslouchá

Kromě toho je důležitým aspektem služeb port, který používají. Chcete-li určit port, na kterém proces démona naslouchá, můžete použít příkaz netstat nebo ss, jak je znázorněno na obrázku.

Kde příznak -l znamená tisknout všechny naslouchající sokety, -t zobrazuje všechna TCP spojení, -u zobrazuje všechna UDP spojení, - n znamená tisk čísel portů (místo názvů aplikací) a -p znamená zobrazení názvu aplikace.

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

Pátý sloupec zobrazuje socket: Local Address:Port. V tomto případě proces zabbix_agentd naslouchá na portu 10050.

Výpis spuštěných služeb brány firewall

Pokud má váš server spuštěnou službu brány firewall, která řídí, jak blokovat nebo povolit provoz do nebo z vybraných služeb nebo portů, můžete pomocí firewall-cmd< uvést seznam služeb nebo portů, které byly ve bráně firewall otevřeny. nebo příkaz ufw (v závislosti na distribucích Linuxu, které používáte), jak je znázorněno.

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

sudo ufw status     [UFW Firewall]

To je prozatím vše! V této příručce jsme si ukázali, jak zobrazit spuštěné služby pod systemd v Linuxu. Také jsme se zabývali tím, jak zkontrolovat, zda služba portu naslouchá a jak zobrazit služby nebo porty otevřené v systémové bráně firewall.

Máte nějaké doplňky nebo dotazy? Pokud ano, kontaktujte nás pomocí formuláře pro komentáře níže.