systemd jest menadżerem systemu i usług dla Linuksa który zastąpił w większości dystrybucji (Arch Linux, CentOS, RedHat, Fedora, Debian, Ubuntu, SUSE) stary SysVinit. Odpowiedzialny jest m.in. za start poszczególnych usług systemowych podczas uruchamiania systemu.
Funkcje systemd
- Możliwość równoległego uruchamiania usług
- Uruchamianie serwisów za pomocą aktywacji gniazda
- Uruchamianie usług na żądanie
- Śledzenie działania procesów przy pomocy grup kontrolnych cgroups
- Wsparcie dla zachowywania i przywracania stanu usług w systemie
- Utrzymanie punktów montowania i automatycznego montowania w systemie
- Transakcyjna implementacja logiki kontroli usług, oparta na zależnościach
- Kompatybilność z SysVinit
Pliki konfiguracyjne:
Cała konfiguracja systemd zapisana jest w plikach zwanych "unitami". Mamy 12 typów plików konfiguracyjnych:
.service, .socket, .device, .mount, .automount, .swap, .target, .path, .timer, .snapshot, .slice, .scope
Dokładny opis znajduje się tutaj: https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files
Unity znajdują się w następujących katalogach:
/etc/systemd/system - pliki z tej lokalizacji są przetwarzane w pierwszej kolejności.
/lib/systemd/system - oryginalne pliki konfiguracyjne które przeważnie są linkowane do /etc/systemd/system
Komendy
Cele uruchomienia
systemctl list-units --type=target
- lista wszystkich możliwych trybów (celów) uruchamiania Linuxa
systemctl get-default
- pokazuje w jakim trybie (celu) domyślnie uruchamia się Linux
systemctl set-default nazwa_celu
- zmiana domyślnego trybu uruchamiania Linuxa
systemctl isolate nazwa_celu
- przełączenie trybu/celu w danym momencie
systemd-analyze blame
- lista aktualnie uruchomionych usług.
Podstawowe komendy na przykładzie serwera www nginx
systemctl list-units
- lista wszystkich aktywnych usług/jednostek które systemd przetwarza.
systemctl list-unit-files
– lista wszystkich usług/jednostek wraz ze statusem
systemctl --state=failed
- lista usług, których nie udało się uruchomić podczas startu systemu
systemctl start nginx
– uruchamianie usługi
systemctl stop nginx
– zatrzymywanie usługi
systemctl restart nginx
– restart usługi
systemctl reload nginx
– przeładowanie konfiguracji danej usługi
systemctl enabled nginx
- włączanie usługi
systemctl disable nginx
- wyłączanie usługi
systemctl is-enabled nginx
- sprawdzanie czy usługa jest włączona
systemctl is-active nginx
- sprawdzanie czy usługa jest aktywna/uruchomiona w danym momencie
systemctl status nginx
- sprawdzanie statusu usługi
systemctl cat nginx
- sprawdzanie definicji/konfiguracji usługi
Analiza
journalctl -b
- zdarzenia od czasu ostatniego uruchomienia systemu
journalctl -f
- Tak jak komenda tail -f - 10 ostatnich zdarzeń
Ręczne dodawanie usługi
Jeśli chcemy stworzyć i uruchomić przy starcie systemu daną usługę, tworzymy plik jednostki np: /etc/systemd/system/test.service
o przykładowej zawartości:
[Unit]
Description=Moj program
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=root
Group=root
ExecStart=/test/test.sh
Następnie włączamy usługę: systemctl enable test
✅ @kamilkobak, I gave you an upvote on your first post! Please give me a follow and I will give you a follow in return!
Please also take a moment to read this post regarding bad behavior on Steemit.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @kamilkobak! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You published your First Post
You got a First Vote
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Congratulations @kamilkobak! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Do not miss the last post from @steemitboard:
Vote for @Steemitboard as a witness to get one more award and increased upvotes!
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit