GNU/Linux >> Znalost Linux >  >> Linux

Jak vypsat seznam služeb v systému Linux

Jako správce systému máte pravděpodobně co do činění se spoustou služeb každý den.

V systému Linux služby se používají k mnoha různým účelům.

Mohou být použity ke spuštění serveru SSH na vašem počítači nebo mohou provádět některé operace v určitou hodinu nebo den.

Ať už používáte distribuci založenou na Debianu nebo RedHat, dotazovací služby jsou velmi podobné.

Vzhledem k distribuci, kterou používáte, a konkrétněji inicializačnímu systému (init nebo systemd), možná budete muset použít jiné příkazy.

V tomto tutoriálu se dozvíte, jak můžete pomocí správce systému vypsat seznam všech služeb na vašem počítači se systémem Linux.

Určete použitého správce systému

Jak pravděpodobně víte, nejnovější distribuce používají Systemd správce systému .

Ne vždy tomu tak ale bylo:v minulosti většina distribucí používala systémový manažerSysVinit.

V důsledku toho existují skutečně dva způsoby správy služeb v systému Linux.

Než se naučíte příkazy pro výpis služeb, musíte znát správce systému, kterého aktuálně používáte.

K určení aktuálního správce systému je nejjednodušší použít příkaz „pstree“ a zkontrolovat vůbec první proces spuštěný ve vašem systému.

$ pstree | head -n 5

Pokud vidíte „systemd “, to samozřejmě znamená, že aktuálně používáte systemd. Pokud však uvidíte „init “, znamená to, že používáte SysVinit.

Na Ubuntu 14.04, které stále používá starý init systém, může váš „pstree“ vypadat takto.

Seznam služeb pomocí systemctl

Nejjednodušší způsob, jak vypsat seznam služeb v Linuxu, když jste na systému systemd, je použít příkaz „systemctl“ následovaný „list-units“. Chcete-li omezit výsledky pouze na služby, můžete zadat možnost „–type=service“.

$ systemctl list-units --type=service

Ve výchozím nastavení vám tento příkaz zobrazí pouze služby, které jsou aktivní, nebo služby, které ve vašem systému selhaly. Na výše uvedeném snímku obrazovky je většina služeb aktivních, ale ta logrotate (zvýrazněná červeně) je označena jako neúspěšná.

Skvělé, naučili jste se, jak snadno vypsat své služby na serveru Linux.

Jak jste si však mohli všimnout, neměli jste přístup ke všem službám:a co neaktivní služby? A co služby, které nebyly načteny systémem systemd při spouštění?

Vypsat všechny služby v systému Linux pomocí jednotek seznamu

Chcete-li vypsat všechny služby, tedy aktivní i neaktivní, musíte použít příkaz „systemctl list-units“ následovaný volbou „–all“.

Podobně můžete omezit výsledky pouze na služby pomocí typového filtru.

$ systemctl list-units --type=service --all

Jak můžete vidět, jsou uvedeny také neaktivní služby, což by mohlo být výhodné, kdybyste svou službu právě napsali a postarali se o ni v seznamu.

V tomto případě jsou uvedeny pouze načtené služby. Při bootování systemd načte soubory jednotek a může se rozhodnout nenačíst konkrétní službu, pokud zjistí, že ji systém nebude používat.

V důsledku toho existuje skutečný rozdíl mezi „načteným “ a „nainstalováno “služby. Služby „Instalované“ znamenají, že soubory jednotek lze nalézt v odpovídajících cestách.

Seznam služeb podle státu

V některých případech vás mohou zajímat pouze služby, které selhaly. Za tímto účelem můžete zadat stav, který hledáte, jako možnost příkazu systemctl.

$ systemctl list-units --state=<state>

$ systemctl list-units --state=<state1>,<state2>

Kde „stav“ může být jedna z následujících hodnot:aktivní, neaktivní, aktivující, deaktivující, neúspěšný, nenalezený nebo mrtvý.

Pokud nás například zajímají pouze „selhaly“ služby, spustíme následující příkaz

$ systemctl list-units --state=failed

Vypsat všechny soubory služeb pomocí souborů list-unit-files

A konečně, pokud máte zájem o „načteno “, „nainstalováno “, „deaktivováno “ a také „povoleno ” service files, existuje další příkaz, který by mohl být docela užitečný.

Abyste vypsali všechny dostupné soubory služeb, musíte použít příkaz „systemctl“ následovaný „list-unit-files“. Volitelně můžete určit typ pomocí možnosti „–type=service“.

$ systemctl list-unit-files --type=service

Případně můžete použít příkaz „grep“ k vyhledání konkrétních cest ve vašem systému, které mohou obsahovat soubory služeb.

$ ls -l /etc/systemd/system /usr/lib/systemd/service | egrep .service$

Gratulujeme, naučili jste se, jak můžete uvést služby, pokud váš systém používá systemd!

Seznam služeb využívajících službu

Nejjednodušší způsob, jak vypsat seznam služeb v Linuxu, když jste v systému SystemV init, je použít příkaz „service“ následovaný volbou „–status-all“. Tímto způsobem se vám zobrazí úplný seznam služeb ve vašem systému.

$ service --status-all

Jak vidíte, před každou službou jsou uvedeny symboly v závorkách. Tyto symboly znamenají:

  • + :znamená, že služba běží;
  • :znamená, že služba neběží vůbec;
  • ? :znamená, že Ubuntu nedokázalo říct zda služba běží nebo ne.

Proč tedy některé služby zjišťují, zda jsou spuštěny nebo ne, a některé ne?

Vše se týká implementace init skriptu. V některých skriptech, jako je například skript udev, můžete vidět, že „stav ” je implementován.

To není případ „dns-clean ” skript například, což je důvod, proč máte při dotazu na tuto službu otazník.

Seznam služeb SysVinit ve složkách

Dalším způsobem zobrazení aktuálního seznamu služeb je použití příkazu „ls“ pro složky obsahující všechny skripty v systému Linux, konkrétně „/etc/init.d“.

$ ls -l /etc/init.d/*

Závěr

V tomto tutoriálu jste se naučili, jak můžete snadno uvést služby v systému Linux ať už používáte systemd nebo SysVinit.

Pokud máte zájem o vytváření vlastních služeb, doporučujeme vám podívat se na následující zdroje. Mohou být opravdu užitečné, aby toho bylo správně dosaženo.

  • Psaní spouštěcího skriptu pro init systémy;
  • Spouštění služeb při spouštění pomocí systemd;

Pokud vás zajímá Správa systému Linux , máme na webu kompletní sekci na toto téma, takže se na ni určitě podívejte.


Linux
  1. Jak nakonfigurovat virtualizaci na Redhat Linuxu

  2. Jak nastavit nebo změnit název hostitele systému v systému Linux

  3. Jak spravovat a vypisovat služby v Linuxu

  1. Jak používat příkaz Linux SS

  2. Jak změnit název hostitele v systému Linux

  3. Jak vypsat Systemd Services v Linuxu

  1. Jak vypsat běžící procesy v Linuxu

  2. Jak vypsat seznam uživatelů v Linuxu

  3. Jak zkontrolovat verzi Linuxu