Š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 Autovt@.Service 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 autovt@.service enabled crond.service enabled dbus-org.fedoraproject.FirewallD1.service enabled dbus-org.freedesktop.nm-dispatcher.service enabled firewalld.service enabled getty@.service 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. ]