Targety (ang. target – cel) to po prostu logiczne zbiory unitów. To specjalny typ unitu z rozszerzeniem .target. Niektóre targety są odpowiednikiem runleveli znanych z SysVinit, są jednak nazwane a nie ponumerowane. Targety są używane do wykonywania serii unitów. Jest to zazwyczaj prawda gdy chodzi o bootowanie systemu do konkretnego poziomu operacyjnego (runlevelu o konkrenym numerze) ze wszystkimi wymaganymi usługami uruchomionymi w tym poziomie. Niektóre targety dziedziczą wszystkie usługi z innych targetów i dodają do nich swoje. Systemd zawiera wiele predefiniowanych targetów, które opisuje tabela poniżej wraz z odpowiednikami w SysVinit.
Target | SysVinit Run Level | Opis |
halt | 0 | Zamyka i zatrzymuje system. |
poweroff lub runlevel0 | 0 | Zamyka i wyłącza z zasilania system. |
shutdown | 0 | Zamyka system. |
rescue lub runlevel1 | 1, s, lub single | Target Single-user przeznaczony do czynności administracyjnych i odzyskiwania systemu. Lokalny system plików jest podmontowany. Część niezbędnych usług jest uruchomiona ale sieć jest odłączona. |
multi-user lub runlevel2|3|4 | 3 | Target multi-user z pełną obsługą sieci ale bez GUI. |
graphical lub runlevel5 | 5 | Target multi-user z pełną obsługą sieci oraz GUI. |
reboot lub runlevel6 | 6 | Zamyka i uruchamia ponownie system. |
default | 3 lub 5 |
Domyślny boot target zlinkowany z targetem multi-user.target i graphical.target. |
emergency | – | Uruchamiany jako powłoka awaryjna. Główny system plików (root) jest podmontowany w trybie tylko do odczytu, inne systemy plików nie są montowane. Sieć i inne usługi są wyłączone. |
hibernate | – | Wprowadza system w stan hibernacji zapisując stan systemu na twardym dysku i wyłączając zasilanie. Gdy zasilanie powraca system startuje z poziomu zapisanego na twardym dysku stanu. |
suspend | – | Podobnie do hibernacji ale stan systemu zapisywany jest do pamięci operacyjnej, której nie jest odłączane zasilanie. |
hybrid-sleep | – | Wprowadza system w stan hibernacji i stan uśpienia. |
Lista wszystkich wczytanych i aktywnych targetów:
# systemctl -t target
Zarządzanie targetami.
Wyświetlanie i ustawianie domyślnego boot targetu:
# systemctl get-default
Zmiana domyślnego boot targetu na muli-user.target:
# systemctl set-default multi-user.target
Przełączenie na multi-user target (odpowiednik run levelu 3):
# systemctl isolate multi-user.target
Przełączenie na garficzny target (odpowiednik run levelu 6):
# systemctl isolate graphical.target
Zamknięcie systemu:
# systemctl halt
Zamknięcie systemu i wyłączenie zasilania:
# systemctl poweroff
Reboot systemu:
# systemctl reboot
Wprowadzenie systemu w stan hibernacji i uśpienie:
# systemctl hybrid-sleep
Przełączenie systemu w stan zgodny z run level 3:
# systemctl isolate runlevel3.target
Używanie komendy shutdown.
Komenda shutdown używana jest do zatrzymywania systemu, wyłączania zasilania lub rebootowania systemu. Polecenie wysyła komunikat ostrzegawczy wszystkim zalogowanym użytkownikom, wyłącza możliwość logowania i oczekuje określony czas na wylogowanie się użytkowników, a dalej wyłącza wszystkie usługi i system do określonego targetu.
Natychmiastowe zamknięcie systemu i reboot systemu:
# shutdown -r now
Rozpoczyna zamykanie systemu i wyłączenie zasilania po 5 minutach:
# shutdown -h 5
Rozpoczyna zamykanie systemu i jego zatrzymanie po 10 minutach:
# shutdown -H 10
Rozpoczyna zamykanie systemu i wyłączenie zasilania po 20 minutach:
# shutdown -P 20
Używanie komend halt, poweroff i reboot.
Komendy te są dostępne w RHEL7 tylko z powodu wstecznej kompatybilności, rekomendowane jest korzystanie z komendy systemctl.
Stara komenda | Odpowiednik shutdown |
# halt |
# shutdown -H now |
# poweroff |
# shutdown -P now |
# reboot |
# shutdown -r now |
Statystyki wydajności bootowania systemu.
Wyświetlenie całkowitej ilości czasu potrzebnej do załadowania systemu (kernel, initrd i przestrzeń użytkownika):
# systemd-analze
Czas jaki zajęło każde zadania w czasie procesu bootowania systemu:
# systemd-analyze blame