Běžná práce se systemd

Stejně jako v předchozích variantách service managerů existuje i v systemd program, pomocí kterého se služby spouští, zastavují, restartují nebo se načítá jejich konfigurace za běhu. Pro tyto a další úkony slouží aplikace systemctl:

Spuštění služby, pokud již běží, nic se neděje:

systemctl start mysqld.service

Zastavení služby, pokud je již zastavena, nic se neděje:

systemctl stop mysqld.service

Restart a podmíněný restart služby; drůhý z uvedených bude proveden pouze pokud služba běží, tedy nespustí zastavenou službu, jako by to udělal první z nich:

systemctl restart mysqld.service
systemctl try-restart mysqld.service

Znovu-načtení konfigurace:

systemctl reload mysqld.service

Spouštět službu na defaultních runlevelech po startu:

systemctl enable mysqld.service

Nespouštět službu automaticky po startu:

systemctl disable mysqld.service

Zjištění, zda je služba automaticky spouštěna po startu:

systemctl is-enabled mysqld.service

Přepnutí do runlevelu 3:

systemctl isolate multi-user.target
systemctl isolate runlevel3.target

Přepnutí do runlevelu 5:

systemctl isolate graphical.target
systemctl isolate runlevel5.target

Výpis všech služeb a jejich stavů:

systemctl list-units

Znovu-načtení konfigurace démona, důležitý krok po úpravě unit souborů:

systemctl daemon-reload

Pro zpětnou kompatibilitu systemd podporuje i dřívější způsob provádění těchto operací – tedy pomocí programů service, chkconfig apod., nicméně preferovaná je novější varianta.

Pokud jste si vyzkoušeli například příkaz systemctl enable, všimli jste si, že systemd hojně pracuje se symbolickými odkazy. Například instalace služby po startu znamená přidání symbolického odkazu na příslušný service file do adresáře cíleného runlevelu, který končí příponou „target“. Pokud pochopíte tento celkem jednoduchý princip, nic vám nebrání vytváření vlastních symbolických odkazů manuálně, tedy bez programu systemctl.

Jak ze systemd dostat více informací

Pokud se dostanete tak daleko, že bude te upravovat nějakou službu, například její unit soubor, případně vytvářet službu novou, bude se vám hodit trochu ukecanější systemd. To v GRUBu zařídíme přidáním následujících parametrů do příkazu načtení jádra:

systemd.log_level=debu systemd.log_target=kmsg

v případě GRUB 2 můžeme nastavit proměnnou v souboru /etc/default/grub:

GRUB_CMDLINE_LINUX="systemd.log_target=kmsg systemd.log_level=debug"

http://www.wild-web.eu/blog/bezna-prace-se-systemd/