Erinevus lehekülje "Systemd" redaktsioonide vahel
(→Systemd ülessehitus ja toimimine) |
|||
44. rida: | 44. rida: | ||
logind hoolitseb kasutajate sisselogimise eest | logind hoolitseb kasutajate sisselogimise eest | ||
+ | ===Teenuste haldus=== | ||
+ | Teenuste halduskäsud, httpd näitel | ||
+ | # systemctl start httpd.service | ||
+ | # systemctl restart httpd.service | ||
+ | # systemctl stop httpd.service | ||
+ | # systemctl reload httpd.service | ||
+ | # systemctl status httpd.service | ||
+ | Staatus annab järgneva tulemi | ||
+ | |||
+ | # '''systemctl status httpd''' | ||
+ | * httpd.service - Apache Web Server | ||
+ | Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) | ||
+ | Active: active (running) since Thu 2016-03-17 16:42:50 EET; 4 days ago | ||
+ | Main PID: 247 (httpd) | ||
+ | Tasks: 109 (limit: 512) | ||
+ | CGroup: /system.slice/httpd.service | ||
+ | |- 247 /usr/bin/httpd -k start -DFOREGROUND | ||
+ | |- 397 /usr/bin/httpd -k start -DFOREGROUND | ||
+ | |- 398 /usr/bin/httpd -k start -DFOREGROUND | ||
+ | |- 399 /usr/bin/httpd -k start -DFOREGROUND | ||
+ | `-1836 /usr/bin/httpd -k start -DFOREGROUND | ||
+ | |||
+ | Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable. | ||
+ | |||
+ | Systemd pakub head võimalust uurida ja analüüsida ka boot protsessi käiku | ||
+ | |||
+ | Kaua võttis startup aega | ||
+ | |||
+ | # systemd-analyze | ||
+ | Startup finished in 487ms (kernel) + 2.776s (initrd) + 20.229s (userspace) = 23.493s | ||
+ | |||
+ | Kui kaua iga teenuse bootimine aega võttis | ||
+ | |||
+ | # systemd-analyze blame | ||
+ | 4.866s firehol.service | ||
+ | 1.053s dev-vda1.device | ||
+ | 935ms munin-node.service | ||
+ | ... | ||
+ | 23ms systemd-random-seed.service | ||
+ | |||
+ | Kõiki boot teenuseid näeb käsuga | ||
+ | |||
+ | systemctl list-unit-files | ||
+ | |||
+ | Kõik boodil mitte startinud teenused | ||
+ | |||
+ | systemctl --failed | ||
== vajab puhastamist == | == vajab puhastamist == |
Redaktsioon: 22. märts 2016, kell 13:57
Toores. Ehk seda pala võib täiendada.
Sisukord
Sissejuhatus
systemd on süsteemi ja selle teenuste haldur Linuxile. Systemd autoriteks on Lennart Poettering ja Kay Sievers. Systemd on kirjutatud C keeles, et vähendada aeglust mis tekib traditsioonilistes init süsteemides shelli skriptide käivitamisest.
Systemd pakub:
- agresiivset teenuste paralleel käivitamist
- ühildub SysV ja LSB init skriptidega
- socket ja D-Bus põhist vastavalt vajadusele teenuste käivitust
- protsesside jälgimist Linuxi cgroups abil
- hoolitseb mount süsteemi eest
- võimaldab süsteemi oleku salvestust ja taastamist
- sisaldab sõltuvuste põhist teenuste juhtimist mis võimaldab väga kiiret süsteemi käivitumist (alla 1s osadel süsteemidel)
- ja palju muud huvitavat mida mujalt eriti ei leia
Distrote tugi
Osad suurematest Linuxi distrotest juba kasutavad või plaanivad kasutusele võtta systemd oma peamiseks init süsteemiks.
systemd on kasutusel nendes distrotes:
- Arch Linux
- Fedora
- Mageia
- Mandriva Linux
- openSUSE
- Red Hat Enterprise Linux 7
systemd ei ole veel kasutusel ja võibolla ei tule ka kasutusele nendes distrotes:
- Ubuntu, nemad kirjutasid Upstarti, wikis on olemas eksperimenteerimiseks juhised kuidas systemd installida
- Debian, systemd toetab ainult Linuxi kernelit, debian aga toetab peale linuxi ka veel teisi kerneleid, wikis olemas juhised kuidas installida. Debiani systemd küsitlus
- Slackware, neile ei meeldi systemd[1]
Systemd ülessehitus ja toimimine
Systemd asendab suhteliselt palju klassikalist linuxi init süsteemi tarkvara, nt: ConsoleKit, sysvinit, initscripts, pm-utils, inetd, acpid, syslog, watchdog, cgrulesd, cron, atd.
Systemd ja paljud selle alam teenused kasutavad suhteliselt palju D-Bus süsteemi kõige juhtimiseks mis võimaldab teenuseid käivitada vastavalt vajadusele, teenuseid on võimalik käivitada ka paljude erinevate signaalide peale. Näiteks on võimalik luua väheke muudetud ssh unit fail mis käivitab ssh serveri ainult siis kui keegi üritab pordi 22 külge ühenduda (põhimõte sarane inetd'le). Sedasi on võimalik käivitada igasuguseid asju. systemd teenuseid saab juhtida systemctl käsuga
syslog on asendatud systemd-journald teenusega mis kasutab teksti asemel binary faile ning hoolitseb selle eest et kõik mis sinna sisse läheb tuleb ka samamoodi välja, syslog seda ei tee. syslog'i kasutamine systemd süsteemis on toetatud kuid keegi seda väga ei soovita teha. Journali juhtimiseks on käsk journalctl
Systemd'l on sisseehitatud watchdog tugi ja oskab kasutada riistvaralist watchdogi kui see on olemas, sammuti võib iga süsteemi teenus kasutada systemd tarkvaralist watchdogi mis automaatselt taaskäivitab teenuse kui see peaks mingil põhjusel kokku jooksma. watchdog näidis
corn on asendatud systemd.timers süsteemiga mis on palju paindlikum kuid keegi ei keela corni edasi jooksutamast
logind hoolitseb kasutajate sisselogimise eest
Teenuste haldus
Teenuste halduskäsud, httpd näitel
# systemctl start httpd.service # systemctl restart httpd.service # systemctl stop httpd.service # systemctl reload httpd.service # systemctl status httpd.service
Staatus annab järgneva tulemi
# systemctl status httpd * httpd.service - Apache Web Server Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2016-03-17 16:42:50 EET; 4 days ago Main PID: 247 (httpd) Tasks: 109 (limit: 512) CGroup: /system.slice/httpd.service |- 247 /usr/bin/httpd -k start -DFOREGROUND |- 397 /usr/bin/httpd -k start -DFOREGROUND |- 398 /usr/bin/httpd -k start -DFOREGROUND |- 399 /usr/bin/httpd -k start -DFOREGROUND `-1836 /usr/bin/httpd -k start -DFOREGROUND
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Systemd pakub head võimalust uurida ja analüüsida ka boot protsessi käiku
Kaua võttis startup aega
# systemd-analyze Startup finished in 487ms (kernel) + 2.776s (initrd) + 20.229s (userspace) = 23.493s
Kui kaua iga teenuse bootimine aega võttis
# systemd-analyze blame 4.866s firehol.service 1.053s dev-vda1.device 935ms munin-node.service ... 23ms systemd-random-seed.service
Kõiki boot teenuseid näeb käsuga
systemctl list-unit-files
Kõik boodil mitte startinud teenused
systemctl --failed
vajab puhastamist
Peale seda, kui Ubuntu Upstarti välja arendas, hakkasid mitmed distrod, sh Fedora ja openSuSE selle suunas liikuma. Nüüd on viimased kaks aga end ringi pööranud ja juba 12.1 openSuSE-s oli tegelikult initiks hoopis uus poiss nimega Systemd.
See on üks isevärki põnev tegelane ja üks blogiartikkel paljastab pisut telgitaguseid:
http://patrakov.blogspot.com/2011/01/writing-systemd-service-files.html
systemd ise oskab näiteks protsesse monitoorida ja neid taaskäivitada. Samuti pidada systemd-ga saama teha nii, et mõni protsess käivitub alles siis, kui mõni teine protsess üritab tema socketi külge ühenduda.
https://wiki.gentoo.org/wiki/Systemd
if you are a regular desktop or simple server user, it probably will work without you needing to do anything special (except using init=/usr/bin/systemd in your kernel command line and maybe needing to reemerge a couple of packages with USE="systemd"). If you use something more complicated (RAID, LVM, NFS, that kind of stuff), you probably will need to enable or perhaps change a couple of services, but that's it. If you use a not very common daemon, maybe you will need to write its service file; but it's ridiculous easy (specially when compared to sysvinit scripts).
Just a word of advice: if you are a normal laptop user, systemd has replaced most of the functionality of consolekit; so if you boot with systemd, several packages need to have enable the systemd USE flag (and the consolekit one disabled). In particular, pambase and polkit need to set either systemd or consolekit, but cannot set both.