GNU/Linux >> Znalost Linux >  >> Linux

10 praktických příkazů systemd:Reference

Špatné systemd má svůj podíl odpůrců, ale zdá se, že tu zůstane pro administrátory Linuxu, takže bychom si na to mohli zvyknout. Tento praktický systemd reference příkazů vám pomůže zachovat si zdravý rozum při pokusu o provádění běžných administrativních úloh. Takže dokud nezískáme něco, co je použitelnější, chutnější a žádanější než systemd , vychutnejte si tento seznam deseti užitečných příkazů pro vaše pohodlí. Tyto příkazy nejsou v žádném konkrétním pořadí podle důležitosti nebo relevance.

Seznam souborů jednotek

Z systemd manuálová stránka:Soubor jednotky je prostý textový soubor ve stylu ini, který kóduje informace o službě, soketu, zařízení, bodu připojení, bodu automatického připojení, odkládacím souboru nebo oddílu, cíli spouštění, sledovaném souboru. systémová cesta, časovač řízený a kontrolovaný systemd , segment správy zdrojů nebo skupina externě vytvořených procesů.

$ SystemCtl List-Unit-FileSinit State proc-Sys-FS-binfmt_misc.automount static dev-hgenepages.mount static dev-mqueue.Mount static Proc-Sys-FS-binfmt_misc.mount static Sys-fs -Fuse-Connections.Mount Static Sys-Kernel-Config.Mount Static Sys-Kernel-Debug.mount Static Tmp.Mount Deaktibledbrandbot.Path DisabledSystemd-ASK-Password-Console.Path Static Systemd-Ask-Password-PlyMouth.Path Systemd -Ask-Password-Wall.Path Static Session-1.Scope Static ARP-ETHERS.Service DeaktibledAuditd.Service Enabled [email protected] Enabled

Samozřejmě můžete vždy použít kanál grep zobrazíte pouze povolené služby.

$ systemctl list-unit-files |grep enabledauditd.service enabled [email protected] enabled crond.service enabled dbus-org.fedoraproject.FirewallD1.service enabled dbus-org.freedesktop.nm-dispatcher.service enabled firewalld.service enabled [email protected] enabled irqbalance.service enabled kdump.service enabled lvm2-monitor.service enabled  

Tyto soubory jednotek, umístěné pod /lib/systemd/system , jsou zhruba ekvivalentní starším init skriptům, které byly umístěny pod /etc/rc.d/init.d . Ve skutečnosti, pokud vy nebo vaše instalace softwaru vytvoříte init skripty, odpovídající systemd soubor jednotky je namapován pro vás. Další vysvětlení poskytuje /etc/rc.d/init.d/README :

Hledáte tradiční init skripty v /etc/rc.d/init.d a jsou pryč? Zde je vysvětlení, co se děje:Používáte OS založený na systemd, kde tradiční init skripty byly nahrazeny nativními soubory systemd services. Soubory služeb poskytují velmi podobné funkce jako init skripty. Chcete-li použít soubory služeb, jednoduše vyvolejte "systemctl", který vypíše seznam všech aktuálně běžících služeb (a dalších jednotek). Pomocí "systemctllist-unit-files" získáte seznam všech známých souborů jednotek, včetně zastavených, zakázaných a maskovaných. Ke spuštění nebo zastavení služby použijte "systemctl startfoobar.service" a "systemctl stop foobar.service". Další podrobnosti naleznete v systemctl(1). Všimněte si, že tradiční init skripty nadále fungují na systemdsystem. Init skript /etc/rc.d/init.d/foobar je implicitně namapován do servisní jednotky foobar.service během inicializace systému. Děkujeme! Další čtení:man:systemctl(1) man:systemd(1) http:// 0pointer.de/blog/projects/systemd-for-admins-3.html http://www.freedesktop.org/wiki/Software/systemd/Incompatibilities 

Jak můžete vidět, init.d byl odstraněn ve prospěch systemd . Zůstane tu, dokud někdo nepřijde s něčím lepším. (Doufám, že někdo rychle pracuje na náhradě.)

Seznam jednotek

Výpis aktivních jednotek zobrazuje mnoho užitečných informací o vašich načtených a aktivních službách. Výstup je příliš podrobný, než aby jej zde bylo možné demonstrovat, ale zkuste na svém systému použít následující příkaz, abyste viděli, co tím myslím.

$ systemctl list-units 

Stavová pole jsou dobře vidět, ale nejužitečnější je pro mě pole popisu. Poskytuje podrobné informace o vašich službách.

Spustit službu

Chcete-li získat název služby, vypište soubory jednotky a vyhledejte ten, který chcete. Poté použijte systemctl příkaz ke spuštění vaší služby. Používám firewalld jako příklad.

$ sudo systemctl spustit firewalld 

Překvapivě, nebo možná ne tak překvapivě, neexistuje žádná odezva při spuštění, zastavení nebo restartování služby. Chcete-li zkontrolovat stav služby, musíte použít příkaz status.

Kontrola stavu služby

Chcete-li zkontrolovat stav služby, použijte stav systemctl název-služby příkaz.

$ sudo systemctl status sshd[sudo] heslo pro khess:● sshd.service – démon serveru OpenSSH Načteno:načteno (/usr/lib/systemd/system/sshd.service; povoleno; přednastaveno dodavatelem:povoleno) Aktivní:aktivní (v provozu) od středy 29. 4. 2020 07:44:57 CDT; Před 2h 17min Dokumenty:man:sshd(8) man:sshd_config(5) Hlavní PID:1055 (sshd) CGroup:/system.slice/sshd.service └─1055 /usr/sbin/sshd -DApr 29 07:44:57 centos7 systemd[1]:Spouštění démona serveru OpenSSH...29. dubna 07:44:57 centos7 sshd[1055]:Server naslouchající na portu 0.0.0.0 22. 29. dubna 07:44:57 centos7 sshd[1055]:Server poslech na ::port 22. 29. dubna 07:44:57 centos7 systemd[1]:Spuštěn démon serveru OpenSSH. 29. dubna 07:51:35 centos7 sshd[1396]:Přijaté heslo pro khess z portu 192.168.16769 ssh 522.168.16769 ssh /code> 

Líbí se mi status systemd kvůli uvedeným detailům. Například ve výše uvedeném seznamu vidíte úplnou cestu k souboru jednotky, stav, příkaz start a poslední změny stavu.

[ Chcete si vyzkoušet Red Hat Enterprise Linux? Stáhněte si ji nyní zdarma. ]

Zastavit službu

Zastavení běžící služby je stejně snadné jako spuštění.

$ sudo systemctl stop firewalld 

Opět nevidíte žádnou odpověď od vydání tohoto příkazu. Chcete-li zkontrolovat svůj úspěch nebo neúspěch, zadejte stav služby.

Restartování služby

Pokud chcete zastavit a spustit službu bez zadávání dvou příkazů (sysadmins jsou koneckonců líní), proveďte restart.

$ sudo systemctl restart firewalld 

Nezobrazuje se žádná odpověď systému.

Restartování, zastavení a vypnutí systému

Tyto tři úkoly jsou typické, které správci systému potřebují znát, a jsou nyní pod kontrolou systemd .

Restartovat

Existuje několik způsobů, jak restartovat systémy, ale starý pohotovostní režim, restart, je ve skutečnosti odkazem na systemctl příkaz. Předpokládám, že protože to funguje, propojuje systemctl příkaz s přepínačem restartu přidaným takto:

Restart $ sudo systemctl 

Stejný odkaz platí pro příkazy zastavení a vypnutí.

Vypnutí a zastavení

Nezáleží na tom, jak jste to dělali s halt -p nebo vypnout nyní nebo cokoli, univerzální příkaz je nyní:

vypnutí $ sudo systemctl 

Tento příkaz vypne systém.

Nastavit služby tak, aby se spouštěly při spouštění

Jste zvyklí na chkconfig příkaz, který umožní vašim službám spouštět se při spouštění a pod konkrétní úrovní běhu. No, ty časy jsou také pryč a byly uzurpovány všudypřítomným systemctl příkaz.

Povolení spuštění služby při spouštění

Chcete-li nastavit spuštění jakékoli služby při spuštění, zadejte následující příkaz. Používám firewalld jako příklad služby.

$ sudo systemctl povolit firewalld 

Zakázání spuštění služby při spouštění

Chcete-li zabránit spuštění jakékoli služby při spouštění, zadejte:

$ sudo systemctl zakázat firewalld 

firewall služba se nespustí při spouštění.

Sbalit

Tento stručný, ale praktický systemd/systemctl referenční příručka by vám měla trochu ulehčit práci s systemd . Taková je alespoň teorie. A jak často uvidíte v mých článcích nebo mě slyšíte říkat nahlas:"Na papíře všechno funguje." Nezapomeňte mi na Twitteru dát vědět, co si myslíte o mých článcích, a také mi navrhnout nová témata.

[ Bezplatný online kurz:Technický přehled Red Hat Enterprise Linux. ]


Linux
  1. Spravujte spouštění pomocí systemd

  2. Jak vytvořit službu Systemd v Linuxu

  3. Linux – umístění skriptu Fsck?

  1. Jak zabalit službu Systemd?

  2. Příkazy základní služby

  3. odkaz na příkazový řádek systemd (cheat sheet)

  1. Přidání nové služby do Linux systemd

  2. Psaní základních souborů Systemd Service?

  3. systemd - Dávám mé službě více argumentů