30. 6. 2015.

SYSTEMD – Linux sistemski servis












Systemd je sistemski i servisni manadžer za Linux operativni sistem, a sam naziv predstavlja skraćenicu od system deamon – sistemski servis. Inicijalna verzija systemd-a pojavila se početkom 2010 godine, a od 19. juna tekuće godine aktuelna je verzija 221.
Od nedavno, systemd je u žiži interesovanja, jer je na većini modernih Linux distribucija potisnuo dugo korišćeni SysVinit i sada predstavlja podrazumevani init sistem. Korisnici Arch Linux-a su se već poodavno prebacili na systemd koncept, a od skora su u potpunosti prešli i Fedora, RedHat, Debian, OpenSUSE, Ubuntu i druge distribucije.
Mnogi dugogodišnji Linux korisnici nisu oduševljeni ovom promenom, kako zbog dugodišnjeg korišćenja SysVinit skripti, tako i zbog činjenice da novi usvojeni pristup donosi dodatnu kompleksnost i veće ingerencije systemd-u, što se donekle kosi sa osnovnim Linux postulatima modularnosti i jednostavnosti. Činjenica je, međutim, da systemd donosi i brojna unapređenja u odnosu na prethodnika i da njegovo vreme dolazi, pa se na promenu treba što bezbolnije prilagoditi.
Systemd je razvijen pod GNU Lesser General javnom licencom verzije 2.1, a za više informacija možete posetiti adresu http://freedesktop.org/wiki/Software/systemd/.



Osnovne funkcionalnosti
Prilikom podizanja Linux operativnog sistema, završivši sve poslove u domenu svojih zaduženja, Linux kernel pokreće systemd kao prvi inicijalni proces, sa pid-om 1 (process id). Systemd je potom odgovoran za dalju inicijalizaciju svih servisa na sistemu, proveru i aktiviranje (mountovanje) fajl sistema, i dr. Navedeni “taskovi” su samo segment, a servisi samo jedan od entiteta za čije upravljanje je zadužen systemd.
Postoji 12 različitih tipova entiteta i oni se u systemd terminologiji nazijvaju “units”. Evo i spiska entiteta koji spadaju u “units”: service, socket, target, device, mount, automount, snapshot, timer, swap, path, slice i scope. Deo Linux zajednice se ne slaže sa konceptom koji systemd nudi, pre svega iz razloga što po dodeljenim zaduženjima on višestruko prevazilazi ulogu običnog init procesa.
systemdscsh
Značajna promena ogleda se i u činjenici da su kod systemd sistemskog servisa, tradicionalne init skripte zamenjene systemd servisnim fajlovima. U napredne funkcionalnosti koje systemd obezbeđuje spadaju: paralelno pokretanje sistemskih servisa za vreme podizanja sistema, aktiviranje servisa po potrebi (on-demand), podrška za pravljenje preseka sistemskog stanja (system state snapshots), kao i ugrađena servisna kontrolna logika bazirana na međuzavisnostima servisa. Pomenimo još jednu bitnu funkcionalnost – Systemd podržava soket baziranu aktivaciju koja omogućuje istovremeno startovanje servisa. Ova mogućnost značajno smanjuje vreme potrebno za podizanja sistema, uz napomenu da svi servisi ne podržavaju soket aktivaciju. Zavisno od tipa unita podržane su i mnogi drugi načini unit aktivacije: D-bus aktivacija, aktivacija servisa prilikom priključenja nekog uređaja na sistem, aktivacija prouzrokovna izmenom stanja na nekom fajlu ili direktorijumu, i druge. Uz sve nabrojano, systemd je zadržao kompatibilnost za SysVinit skriptama, pa kada sve uzmemo u obzir, ne čudi njegova rastuća popularnost.

Primeri korišćenja

U nastavku ćemo navesti nekoliko praktičnih primera eksploatacije systemd servisa korišćenjem systemctrl naredbe:

systemctl list-units --type service –all #spisak svih servisa na sistemu
systemctl list-units --type service #lista aktivnih servisa na sistemu
systemctl get-default #trenutni target (runlevel)
systemctl start httpd.service #startovanje httpd servisa
systemctl stop httpd.service #zaustavljanje httpd servisa
systemctl restart httpd.service #ponovo pokretanje httpd servisa
systemctl status httpd.service #status httpd servisa
systemctl enable httpd.service #trajno aktiviranje httpd servisa
systemctl disable httpd.service #trajno deaktiviranje httpd servisa
systemctl is-enabled httpd.service #da li se httpd aktivira prilikom pokretanja sistema

Извор: IT Modul