{"id":569,"date":"2017-04-04T22:24:13","date_gmt":"2017-04-04T20:24:13","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=569"},"modified":"2017-05-18T17:46:42","modified_gmt":"2017-05-18T15:46:42","slug":"wstep-do-systemd","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/04\/wstep-do-systemd\/","title":{"rendered":"Wst\u0119p do systemd"},"content":{"rendered":"<p><em>Systemd<\/em> to menad\u017cer systemu i us\u0142ug, zamiennik <em>init<\/em>, <em>SysVinit<\/em> czy <em>Upstart<\/em> znany z RHEL6. To pierwszy proces, kt\u00f3ry startuje podczas \u0142adowania systemu i ostatni proces, kt\u00f3ry si\u0119 zamyka w czasie wy\u0142\u0105czania systemu.<!--more--><\/p>\n<p>Cechy <em>systemd<\/em>:<\/p>\n<ul>\n<li>Mo\u017cliwo\u015b\u0107 r\u00f3wnoleg\u0142ego uruchamiania us\u0142ug.<\/li>\n<li>Uruchamianie serwis\u00f3w za pomoc\u0105 aktywacji gniazda (socketu) i metod\u0105 D-Bus.<\/li>\n<li>Uruchamianie us\u0142ug na \u017c\u0105danie.<\/li>\n<li>\u015aledzenie dzia\u0142ania proces\u00f3w przy pomocy grup kontrolnych cgroups.<\/li>\n<li>Wsparcie dla zachowywania i przywracania stanu us\u0142ug w systemie.<\/li>\n<li>Utrzymanie punkt\u00f3w montowania i automatycznego montowania w systemie.<\/li>\n<li>Transakcyjna implementacja logiki kontroli us\u0142ug, oparta na zale\u017cno\u015bciach.<\/li>\n<li>Kompatybilno\u015b\u0107 z <em>SysVinit<\/em>.<\/li>\n<\/ul>\n<p>Socket (gniazdo) to metoda komunikacji pozwalaj\u0105ca na porozumiewanie jednego procesu dzia\u0142aj\u0105cego na lokalnym systemie z drugim procesem dzia\u0142aj\u0105cym na tym samym lub zdalnym systemie.<\/p>\n<p>D-Bus to inna metoda komunikacji pozwalaj\u0105ca na porozumiewanie si\u0119 ze sob\u0105 wielu proces\u00f3w uruchomionych r\u00f3wnolegle w tym samym systemie lub systemie zdalnym.<\/p>\n<p>R\u00f3wnoleg\u0142e uruchamianie us\u0142ug przez <em>systemd<\/em> ma swoje odbicie w bardziej p\u0142askim drzewie proces\u00f3w co mo\u017ce by\u0107 potwierdzone komend\u0105 <em>pstree<\/em>.<\/p>\n<p><code># pstree -pu<\/code><br \/>\n<span style=\"color: #808080;\"><code>systemd(1)\u2500\u252c\u2500ModemManager(616)\u2500\u252c\u2500{ModemManager}(647)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2514\u2500{ModemManager}(664)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500NetworkManager(749)\u2500\u252c\u2500{NetworkManager}(913)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2514\u2500{NetworkManager}(923)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500abrt-watch-log(5616)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500abrt-watch-log(5660)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500abrtd(5593)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500agetty(1340)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500alsactl(615)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500atd(14593)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500auditd(13824)\u2500\u252c\u2500audispd(13834)\u2500\u252c\u2500sedispatch(13844)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2514\u2500{audispd}(13845)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2514\u2500{auditd}(13833)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500avahi-daemon(8851,avahi)\u2500\u2500\u2500avahi-daemon(8852)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500chronyd(24349,chrony)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500crond(25603)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500cupsd(13709)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500dbus-daemon(630,dbus)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500dnsmasq(2807,nobody)\u2500\u2500\u2500dnsmasq(2808,root)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500dnsmasq(25094,nobody)\u2500\u2500\u2500dnsmasq(25095,root)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500gssproxy(14201)\u2500\u252c\u2500{gssproxy}(14202)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500{gssproxy}(14203)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500{gssproxy}(14204)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500{gssproxy}(14205)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2514\u2500{gssproxy}(14206)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(4303)\u2500\u252c\u2500httpd(9317,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(9318,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(11444,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(16316,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(16317,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(16651,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(16711,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(17668,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u251c\u2500httpd(32502,apache)<\/code><\/span><br \/>\n<span style=\"color: #808080;\"> <code>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2502\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u2514\u2500httpd(32503,apache)<\/code><\/span><\/p>\n<p>Podstawow\u0105 komend\u0105 do pracy z <em>systemd<\/em> jest <em>systemctl<\/em>. Niekt\u00f3re opcje tego polecenia przedstawia tabela poni\u017cej.<\/p>\n<table style=\"width: 685px;\">\n<tbody>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #808080;\"><em>Opcja<\/em><\/span><\/td>\n<td style=\"width: 527.4px;\"><span style=\"color: #808080;\"><em>Opis<\/em><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">demon-reload<\/span><\/td>\n<td style=\"width: 527.4px;\">Czyta ponownie, prze\u0142adowuje wszystkie pliki konfiguracyjne unit\u00f3w i tworzy ponownie ca\u0142e drzewo zale\u017cno\u015bci.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">enable \/ disable<\/span><\/td>\n<td style=\"width: 527.4px;\">Aktywuje lub deaktywuje unit w autostarcie systemu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> get-default (set-default)<\/span><\/td>\n<td style=\"width: 527.4px;\">Pokazuje (ustawia) domy\u015blny cel do za\u0142adowania.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> get-property (set-property)<\/span><\/td>\n<td style=\"width: 527.4px;\">Zwraca (ustawia) warto\u015b\u0107 ustawienia.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> is-active<\/span><\/td>\n<td style=\"width: 527.4px;\">Sprawdza czy unit jest uruchomiony.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> is-enabled<\/span><\/td>\n<td style=\"width: 527.4px;\">Wy\u015bwietla czy unit jest dodany do autostartu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> is-failed<\/span><\/td>\n<td style=\"width: 527.4px;\">Sprawdza czy unit jest w stanie awarii.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> isolate<\/span><\/td>\n<td style=\"width: 527.4px;\">Zmienia stan uruchamiania systemu (podobne do runleveli w SysVinit).<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">kill<\/span><\/td>\n<td style=\"width: 527.4px;\">Zabija wszystkie procesy unitu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">list-dependencies<\/span><\/td>\n<td style=\"width: 527.4px;\">Listuje drzewo zale\u017cno\u015bci dla unitu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> list-sockets<br \/>\n<\/span><\/td>\n<td style=\"width: 527.4px;\">Listuje unity typu gniazdo (socket).<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> list-unit-files<\/span><\/td>\n<td style=\"width: 527.4px;\">Listuje zainstalowane pliki unit\u00f3w.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> list-units<\/span><\/td>\n<td style=\"width: 527.4px;\">Listuje znane unity. Jest to domy\u015blna opcja gdy <em>systemctl<\/em> jest uruchamiane bez opcji.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\"> mask (unmask)<\/span><\/td>\n<td style=\"width: 527.4px;\">Zakazuje (zezwala) na automatyczn\u0105 i r\u0119czn\u0105 aktywacj\u0119 unitu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">reload<\/span><\/td>\n<td style=\"width: 527.4px;\">Zmusza dzia\u0142aj\u0105cy unit do ponownego przeczytania pliku konfiguracyjnego.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">restart<\/span><\/td>\n<td style=\"width: 527.4px;\">Zatrzymuje dzia\u0142aj\u0105cy unit i restartuje\u00a0 go.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">show<\/span><\/td>\n<td style=\"width: 527.4px;\">\u00a0Pokazuje w\u0142a\u015bciwo\u015bci unitu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">start (stop)<\/span><\/td>\n<td style=\"width: 527.4px;\">\u00a0Uruchamia (zatrzymuje) unit.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 138.6px;\"><span style=\"color: #008000;\">status<\/span><\/td>\n<td style=\"width: 527.4px;\">Wy\u015bwietla informacje o statusie unitu.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Systemd to menad\u017cer systemu i us\u0142ug, zamiennik init, SysVinit czy Upstart znany z RHEL6. To pierwszy proces, kt\u00f3ry startuje podczas \u0142adowania systemu i ostatni proces, kt\u00f3ry si\u0119 zamyka w czasie wy\u0142\u0105czania systemu.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/569"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=569"}],"version-history":[{"count":19,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/569\/revisions"}],"predecessor-version":[{"id":1219,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/569\/revisions\/1219"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=569"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=569"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}