Section author: Luka Vretenar, Vedran Miletić
Upravljanje uslugama operacijskog sustava¶
Hint
Za više informacija proučite Chapter 6. Managing Services with systemd u Red Hat Enterprise Linux 7 System Administrator’s Guide.
moderni operacijski sustavi bazirani na Linux jezgri koriste
systemd
za upravljane procesima i podizanje sustavarelativno novi alat, razvoj započeo Lennart Poettering 2010. godine tekstom Rethinking PID 1
koristi značajke specifične za Linux jezgru kao što su kontrolne grupe (engl. control groups, cgroups), signalfd, epoll i druge
predmet brojnih debata, kritika i inženjerskih šala
najpopularniji prethodno korišteni sustav te vrste
sysvinit
izlazi iz prakse i vrijedan je samo spomena; postoji šalabahter za prebacivanje između ta dva sustava
Systemd ekosustav¶
systemd ekosustav sadrži veći broj međusobno povezanih i donekle neovisnih alata, od kojih su najznačajniji:
systemd
init procesa, to je prvi proces koji pokreće Linux jezgra nakon učitavanja i on je zadužen za pokretanje i upravljanje životnim vijekom drugih procesasystemd
usluga, datoteka koje definiraju zahtjeve, redoslijed i instrukcije za pokretanje ostalih procesa potrebnih za rad sustavasystemctl
alata, za pregled i upravljanje stanjima definiranih uslugajournalctl
alata, za pregled sistemskih događaja i događaja vezanih za pojedinu uslugu
Zadatak
Proučite na systemd službenim stranicama dio o imenovanju alata, a zatim proučite objavu na autorovom blogu koja govori o tome kako systemd pomaže u sprječavanju balkanizacije Linuxa aplikacijskih programskih sučelja.
Pokretanje sustava¶
Pokretanje sustava razlikuje se u situaciji kada se koristi SysVinit od situacije kada se koristi Systemd.
SysVinit¶
init (naredba
init
) pokreće usluge na operacijskom sustavuBSD-style vs. SysV-style
razina pokretanja (engl. runlevel) opisuje stanje računala
sastoji se od usluga (engl. services)
razine 0, 1, 2, 3, 4, 5, 6, S/s
naredba
telinit
postavlja razinu pokretanja na zadanu
rezervirane razine
0 -> isključivanje računala (engl. halt)
1 -> jednokorisnički način rada (engl. single-user mode) u kojem se može prijaviti samo
root
korisnik6 -> ponovno pokretanje računala (engl. reboot)
najčešće se koriste razine pokretanja 3 i 5, razina pokretanja 4 se ne koristi
Kada se za init koristi SysVinit vrijedi:
razina je definirana
:initdefault:
u/etc/inittab
usluge su u
/etc/init.d/
ostale naredbe su u
/etc/rc.local
poveznice na usluge po razinama pokretanja su u
/etc/rc[0123456].d/
Zadatak
Pokreće li se usluga
apache2
u razinama pokretanja 1, 2 i 3?Pokreće li se usluga
postgresql
prije ili nakon procesaexim4
u razinama pokretanja 3 i 5?
Systemd jedinka cilja pokretanja¶
Systemd jedinka (engl. unit) je konfiguracijska datoteka koja se koristi za implementaciju usluga i ciljeva pokretanja:
usluge koje pokreću procese demone definirane su
*.service
datotekama,ciljevi pokretanja definirani su
*.target
datotekama.
Alat systemd
podiže sustav u predefinirani cilj koji se sastoji od određenih pokrenutih usluga. Predefinirani ciljevi pokretanja su:
poweroff.target
(pandan SysVrunlevel0'
)reboot.target
(pandan SysVrunlevel6
)multi-user.target
(pandan SysVrunlevel[234]
)graphical.target
(pandan SysVrunlevel5
)rescure.target
(pandan SysVrunlevel1
)emergency.target
U općem slučaju systemd
podiže sustav u stanje default.target
koji tipično pokazuje na graphical.target
.
Maredbom systemctl isolate TARGET
moguće je prebaciti sustav u željeni cilj pokretanja.
Zadatak
Provjerite koji je cilj pokretanja trenutno aktivan na sustavu. Prebacite se u cilj pokretanja …, a zatim usporedite popis procesa.
Todo
Ovdje nedostaje konkretan zadatak.
sve konfiguracijske datoteke i datoteke koje opisuju usluge se nalaze u direktoriju
/etc/systemd
usluge se nalaze u direktoriju
/etc/systemd/system
Zadatak
Pronađite u popisu uslugu … i pronađite njezine datoteke na sustavu.
Todo
Ovdje nedostaje konkretan zadatak.
Upravljanje pojedinom uslugom¶
Baratanje pojedinom uslugom razlikuje se u situaciji kada se koristi SysVinit od situacije kada se koristi Systemd.
SysVinit¶
/etc/init.d/usluga start
pokreće uslugu, ekvivalentnoservice usluga start
/etc/init.d/usluga stop
zaustavlja uslugu, ekvivalentnoservice usluga stop
/etc/init.d/usluga status
ispisuje stanje usluge, ekvivalentnoservice usluga status
naredba
service --status-all
prikazuje status svih usluga
Systemd naredba systemctl
¶
pregled stanja pojedine usluge
USLUGA
možemo izvršiti naredbomsystemctl status USLUGA
upravljati stanjem usluge
USLUGA
možemo slijedećim naredbama:systemctl start USLUGA
systemctl stop USLUGA
systemctl restart USLUGA
systemctl reload USLUGA
Pregled svih praćenih usluga i njihovih stanja se vrši pokretanjem alata systemctl
.
Zadatak
Provjerite status usluga
ntpd
intpdate
, a zatim ih zaustavite i ponovno pokrenite.Naredba
netstat -a
daje, između ostalog, popis otvorenih lokalnih portova (konekcije u stanjuLISTEN
). Otkrijte koje su to usluge u našem slučaju. Ima lintpd
u popisu nakon zaustavljanja daemona?
Zadatak
Iskoristite yum
da bi instalirali vsftpd
, a zatim ga pokrenite. Iskoristite ftp
dostupan na računalu na kojem radite da bi se povezali na poslužitelj (sama prijava vam neće raditi; to zasad zanemarite).
Upravljanje uslugama pojedinog cilja pokretanja¶
Baratanje uslugama cilja ili razine pokretanja razlikuje se u situaciji kada se koristi SysVinit od situacije kada se koristi Systemd.
SysVinit¶
naredba
chkconfig
omogućuje da se uključuje ili isključuje pojedine usluge u pojedinim razinama pokretanjachkconfig --list usluga
ispisuje jesu li usluge uključene ili isključene u pojedinim razinama pokretanjachkconfig usluga on --level 2345
uključuje uslugu za pokretanje u razinama 2, 3, 4 i 5chkconfig usluga off --level 01
isključuje uslugu za pokretanje u razinama 0 i 1
Systemd¶
usluge koji žele biti pokrenute u određenom cilju pokretanja moraju o istome ovisiti
systemctl enable
systemctl disable
Zadatak
Uključite uslugu vsftpd
u runlevelima 3, 4 i 5.
Systemd jedinka usluge¶
Usluge su implementirane kao service units, npr. acpid.service
, sshd.service
.
Todo
Ovdje nedostaje kompletan tekst.