Prije nekoliko mjeseci, Linux Foundation objavila je LFCS (Linux Foundation Certified Sysadmin) certifikaciju, uzbudljiv novi program čiji je cilj omogućiti pojedincima sa svih strana svijeta da dobiju certifikate za izvršavanje osnovnih do srednjih zadataka administracije sustava na Linux sustavima. To uključuje podršku već pokrenutim sustavima i uslugama, uz pronalaženje i analizu problema iz prve ruke, kao i mogućnost odlučivanja kada će se inženjerskim timovima postaviti pitanja.
Sljedeći video opisuje kratak uvod u program certificiranja Linux Foundation.
Ovaj post je dio 7 serije od 10 vodiča. Ovdje ćemo u ovom dijelu objasniti kako upravljati procesom i uslugama pokretanja sustava Linux koji su potrebni za ispit za certifikaciju LFCS.
Postupak pokretanja Linux sustava sastoji se od nekoliko faza, od kojih je svaka predstavljena drugom komponentom. Sljedeći dijagram ukratko sažima proces pokretanja i prikazuje sve glavne komponente koje su uključene.
Kada pritisnete Vlast gumb na stroju, firmver koji je pohranjen u EEPROM čip na matičnoj ploči inicijalizira POST (Samoispitivanje pri uključivanju) za provjeru stanja hardverskih resursa sustava. Kada POST je dovršen, firmver zatim traži i učitava 1. faza boot loader, koji se nalazi u MBR ili u EFI particiju prvog dostupnog diska i daje mu kontrolu.
The MBR nalazi se u prvom sektoru diska označenom kao bootable u BIOS postavke i jest 512 bajtova u veličini.
Sljedeća naredba izvodi sigurnosnu kopiju datoteke MBR (u ovom primjeru, /dev/sda je prvi tvrdi disk). Dobivena datoteka, mbr.bkp može dobro doći ako se tablica particija pokvari, na primjer, onemogući pokretanje sustava.
Naravno, da bismo ga kasnije mogli koristiti ako se ukaže potreba, morat ćemo ga spremiti i pohraniti negdje drugdje (npr. USB voziti, na primjer). Ta će nam datoteka pomoći u vraćanju MBR -a i ponovno će nas pokrenuti ako i samo ako u međuvremenu ne promijenimo izgled tvrdog diska.
# dd if =/dev/sda of = mbr.bkp bs = 512 count = 1.
# dd if = mbr.bkp od =/dev/sda bs = 512 count = 1.
Za sustave koji koriste EFI/UEFI UEFI firmware čita njegove postavke kako bi odredio koja će se UEFI aplikacija pokrenuti i odakle (tj. na kojem se disku i particiji nalazi EFI particija).
Zatim, 2. faza boot loader (aka boot manager) je učitan i pokrenut. GRUB [GR i Unified Boot] je najčešće korišteni upravitelj pokretanja u sustavu Linux. Jedna od dvije različite inačice može se naći na većini sustava koji se danas koriste.
Iako su ciljevi LFCS ispit ne traže izričito znanje o GRUB interni, ako ste hrabri i možete si priuštiti da pokvarite svoj sustav (za svaki slučaj možete ga isprobati prvo na virtualnom stroju), morate pokrenuti.
# update-grub.
Kao korijen nakon izmjene konfiguracije GRUB -a radi primjene promjena.
U osnovi, GRUB učitava zadano zrno i initrd ili initramfs slika. Ukratko, initrd ili initramfs pomažu u otkrivanju hardvera, učitavanju modula jezgre i otkrivanju uređaja neophodnom za postavljanje pravog korijenskog datotečnog sustava.
Jednom kada se pravi root datotečni sustav podigne, kernel pokreće upravitelja sustava i usluga (u tome ili systemd, čija je identifikacija procesa ili PID uvijek 1) za početak normalnog procesa pokretanja korisničkog prostora radi predstavljanja korisničkog sučelja.
Oba u tome i systemd su demoni (pozadinski procesi) koji upravljaju drugim demonima, kao prva usluga koja se pokreće (tijekom pokretanja) i posljednja usluga koja se prekida (tijekom gašenja).
Koncept razine trčanja u Linuxu navodi različite načine korištenja sustava kontrolom koje se usluge izvode. Drugim riječima, razina pokretanja kontrolira koje se zadatke može izvršiti u trenutnom stanju izvršenja = razina izvođenja (a koje ne).
Tradicionalno, ovaj postupak pokretanja izveden je na temelju konvencija iz kojih potječe Sustav V UNIX, s tim da je sustav donio izvršavanje zbirki skripti koje pokreću i zaustavljaju usluge kad je stroj ušao na određenu razinu pokretanja (što je, drugim riječima, drugačiji način rada sustava).
Unutar svake razine pokretanja, pojedinačne se usluge mogu postaviti za pokretanje ili isključivanje ako se izvode. Najnovije verzije nekih velikih distribucija odmiču se od Sustav V standard u korist prilično nove usluge i upravitelja sustava tzv systemd (što znači demona sustava), ali obično podrška sysv naredbe radi kompatibilnosti. To znači da možete pokrenuti većinu dobro poznatih sysv init alati u distribuciji zasnovanoj na systemdu.
Pročitajte također: Zašto 'systemd' zamjenjuje 'init' u Linuxu
Osim pokretanja procesa u sustavu, u tome gleda na /etc/inittab datoteku za odlučivanje koja razina pokretanja se mora unijeti.
Trčanje | Opis |
0 | Zaustavite sustav. Runlevel 0 posebno je prijelazno stanje koje se koristi za brzo isključivanje sustava. |
1 | Također pod pseudonimom s, ili S, ova razina pokretanja ponekad se naziva i način održavanja. Koje se usluge, ako ih ima, pokreću na ovoj razini pokretanja, ovise o distribuciji. Obično se koristi za održavanje sustava niske razine koje bi moglo biti narušeno normalnim radom sustava. |
2 | Višekorisnički. Na Debian sustavima i izvedenicama ovo je zadana razina izvođenja i uključuje - ako je dostupno - grafičku prijavu. Na sustavima baziranim na Red-Hat-u ovo je višekorisnički način rada bez umrežavanja. |
3 | Na sustavima baziranim na Red-Hat-u ovo je zadani višekorisnički način rada, koji pokreće sve osim grafičkog okruženja. Ova razina izvođenja i razine 4 i 5 obično se ne koriste na sustavima temeljenim na Debianu. |
4 | Obično se ne koristi prema zadanim postavkama i stoga je dostupan za prilagodbu. |
5 | Na sustavima temeljenim na Red-Hat-u, potpuni višekorisnički način rada s prijavom na GUI. Ova razina pokretanja je poput razine 3, ali s dostupnom GUI prijavom. |
6 | Ponovo pokrenite sustav. |
Za prebacivanje između razina pokretanja, jednostavno možemo izdati promjenu razine pokretanja pomoću u tome naredba: init N (gdje je N jedna od gore navedenih razina pokretanja). Imajte na umu da ovo nije preporučeni način prebacivanja pokrenutog sustava na drugu razinu rada jer ne upozorava postojeće prijavljene korisnike (uzrokujući tako njihov gubitak i prekid procesa abnormalno).
Umjesto toga, ugasiti naredbu treba koristiti za ponovno pokretanje sustava (koji prvo šalje poruku upozorenja svim prijavljenim korisnicima i blokira daljnje prijave; tada signalizira init za promjenu razina rada); međutim, zadana razina rada (ona s koje će se sustav pokrenuti) mora se urediti u /etc/inittab prvo datoteku.
Iz tog razloga slijedite ove korake za pravilno prebacivanje između razina pokretanja. Kao root potražite sljedeći redak u /etc/inittab.
id: 2: initdefault:
i promijenite broj 2 za željenu razinu pokretanja s vašim željenim uređivačem teksta, kao što je vim (opisano u Kako koristiti vi/vim editor u Linuxu - 2. dio ove serije).
Zatim pokrenite kao root.
# shutdown -r sada.
Da posljednji naredba će ponovno pokrenuti sustav, uzrokujući njegovo pokretanje na navedenoj razini pokretanja tijekom sljedećeg pokretanja, te će pokrenuti skripte koje se nalaze u /etc/rc[runlevel].d imenik kako biste odlučili koje usluge treba pokrenuti, a koje ne. Na primjer, za runlevel 2 u sljedećem sustavu.
Za omogućavanje ili onemogućavanje usluga sustava pri pokretanju koristit ćemo naredba chkconfig u CentOS -u / openSUSE -u i sysv-rc-conf u Debianu i izvedenicama. Ovaj alat također nam može pokazati koje je unaprijed konfigurirano stanje usluge za određenu razinu pokretanja.
Pročitajte također: Kako zaustaviti i onemogućiti neželjene usluge u Linuxu
Popis konfiguracije ranga pokretanja za uslugu.
# chkconfig --list [naziv usluge] # chkconfig -popis postfix. # chkconfig --list mysqld.
Na gornjoj slici to možemo vidjeti postfiks je postavljeno za pokretanje kada sustav uđe na razine pokretanja 2 kroz 5, dok mysqld će se prema zadanim postavkama izvoditi za razine izvođenja 2 kroz 4. Pretpostavimo sada da to nije očekivano ponašanje.
Na primjer, moramo uključiti mysqld za runlevel 5 i isključite postfix za razine 4 i 5. Evo što bismo učinili u svakom slučaju (pokrenite sljedeće naredbe kao root).
# chkconfig -usluga [razina (razina)] razine uključena. # chkconfig -razina 5 mysqld uključena.
# chkconfig --level [razina (i)] usluga isključena. # chkconfig -postfix 45. razine isključen.
Sada ćemo obavljati slične zadatke u a Na temelju Debiana sustav koji koristi sysv-rc-conf.
Konfiguriranje usluge za automatsko pokretanje na određenoj razini pokretanja i sprječavanje njezina pokretanja na svim ostalim.
1. Upotrijebimo sljedeću naredbu da vidimo koje su razine pokretanja gdje mdadm konfiguriran je za pokretanje.
# ls -l /etc/rc[0-6].d | grep -E 'rc [0-6] | mdadm'
2. Koristit ćemo sysv-rc-conf kako bi se spriječilo pokretanje mdadma na svim razinama rada osim 2. Samo označite ili uklonite kvačicu (s razmaknicom) prema želji (možete se pomicati gore, dolje, lijevo i desno tipkama sa strelicama).
# sysv-rc-conf.
Zatim pritisnite q prestati.
3. Ponovno ćemo pokrenuti sustav i ponovno pokrenuti naredbu iz KORAK 1.
# ls -l /etc/rc[0-6].d | grep -E 'rc [0-6] | mdadm'
Na gornjoj slici to možemo vidjeti mdadm konfiguriran je za pokretanje samo na razini pokretanja 2.
systemd je još jedan upravitelj usluga i sustava koji usvaja nekoliko velikih distribucija Linuxa. Cilj mu je omogućiti paralelno obavljanje više obrada tijekom pokretanja sustava (za razliku od sysvinit, koji uvijek nastoji biti sporiji jer pokreće procese jedan po jedan, provjerava ovise li jedan o drugome i čeka da se demoni pokrenu kako bi se moglo pokrenuti više usluga) i da posluže kao dinamičko upravljanje resursima sustav.
Stoga se usluge pokreću po potrebi (kako bi se izbjeglo trošenje sistemskih resursa) umjesto da se pokreću bez čvrstog razloga tijekom pokretanja.
Pregled statusa svih procesa koji se izvode na vašem sustavu, oboje systemd rodni i SysV services, pokrenite sljedeću naredbu.
# systemctl.
The OPTEREĆENJE stupac prikazuje je li definicija jedinice (pogledajte JEDINICA stupac koji prikazuje uslugu ili bilo što što održava systemd) pravilno učitano, dok je AKTIVAN i POD stupci prikazuju trenutno stanje takve jedinice.
Kada AKTIVAN stupac označava da je status jedinice različit od aktivnog, pomoću toga možemo provjeriti što se dogodilo.
# systemctl status [jedinica]
Na primjer, na gornjoj slici, media-samba.mount je u zatajenom stanju. Trčimo.
# systemctl status media-samba.mount.
To možemo vidjeti media-samba.mount nije uspio jer je proces montiranja na hostu dev1 nije mogao pronaći mrežni udio na adresi //192.168.0.10/gacanepa.
Nakon dijeljenja mreže //192.168.0.10/gacanepa postaje dostupna, pokušajmo pokrenuti, zatim zaustaviti i na kraju ponovno pokrenuti jedinicu media-samba.mount. Nakon izvođenja svake radnje, pokrenimo systemctl status media-samba.mount kako bismo provjerili njegov status.
# systemctl pokrenite media-samba.mount. # systemctl status media-samba.mount. # systemctl zaustavi media-samba.mount. # systemctl ponovno pokrenite media-samba.mount. # systemctl status media-samba.mount.
Pod, ispod systemd uslugu možete omogućiti ili onemogućiti pri pokretanju.
# systemctl enable [service] # enable a service # systemctl disable [service] # sprječava pokretanje usluge pri pokretanju.
Postupak omogućavanja ili onemogućavanja automatskog pokretanja usluge pri pokretanju uključuje dodavanje ili uklanjanje simboličkih veza u /etc/systemd/system/multi-user.target.wants imenik.
Alternativno, pomoću naredbe možete saznati trenutačni status usluge (omogućeno ili onemogućeno).
# systemctl je omogućen [usluga]
Na primjer,
# systemctl je omogućen postfix.service.
Osim toga, sustav možete ponovno pokrenuti ili isključiti.
# systemctl ponovno podizanje sustava. # isključivanje systemctl.
Laktaš je zamjena za događaj na temelju događaja /sbin/init daemon i rođen je iz potrebe za pokretanjem usluga samo kad su potrebne (također ih nadzire dok su pokrenuti) i rukovanje događajima kako se dogode, nadmašujući tako klasični sysvinit zasnovan na ovisnostima sustav.
Prvotno je razvijen za distribuciju Ubuntu, ali se koristi u Red Hat Enterprise Linuxu 6.0. Iako je namjeravao biti primjeren za primjenu u svim distribucijama Linuxa kao zamjena za sysvinit, s vremenom ga je zasjenio systemd. 14. veljače 2014. Mark Shuttleworth (osnivač tvrtke Canonical Ltd.) najavio je da će buduća izdanja Ubuntua koristiti systemd kao zadani init demon.
Jer SysV početna skripta za sustav toliko je uobičajena toliko dugo, da veliki broj programskih paketa uključuje SysV skripte za pokretanje. Kako bi se prilagodili takvim paketima, Upstart nudi način kompatibilnosti: Pokreće skripte za pokretanje SysV -a na uobičajenim lokacijama (/etc/rc.d/rc?.d, /etc/init.d/rc?.d, /etc/rc?.dili slično mjesto). Stoga, ako instaliramo paket koji još ne uključuje konfiguracijsku skriptu Upstart, on bi se i dalje trebao pokrenuti na uobičajen način.
Nadalje, ako smo instalirali pomoćne programe poput chkconfig, trebali biste ih moći koristiti za upravljanje uslugama temeljenim na SysV-u, baš kao što bismo to učinili na sustavima temeljenim na sysvinitu.
Skripte za pokretanje također podržavaju pokretanje ili zaustavljanje usluga na temelju šireg niza radnji od skripti za pokretanje SysV -a; na primjer, Upstart može pokrenuti uslugu kad god je priključen određeni hardverski uređaj.
Sustav koji koristi Upstart i njegove izvorne skripte isključivo zamjenjuje /etc/inittab datoteku i specifičnu za razinu pokretanja SysV direktoriji skripti za pokretanje s .conf skripte u /etc/init imenik.
Ovi *.conf skripte (poznate i kao definicije poslova) općenito se sastoje od sljedećeg:
Na primjer,
# My test service - Upstart script demo demo description "Ovdje ide opis" My test service "" autora "Dave Null <[zaštićena e -pošta]>" # Strofe # # Stanze definiraju kada i kako se proces pokreće i zaustavlja. # Popis strofa pogledajte ovdje: http://upstart.ubuntu.com/wiki/Stanzas#respawn. # Kada pokrenuti uslugu. start na runlevel [2345] # Kada zaustaviti uslugu. zaustavi se na razini pokretanja [016] # Automatski ponovno pokrenite proces u slučaju pada. respawn. # Odredite radni direktorij. chdir/home/dave/myfiles. # Navedite proces/naredbu (po potrebi dodajte argumente) za izvođenje. exec bash backup.sh arg1 arg2.
Da biste primijenili promjene, morat ćete upstart -u reći da ponovno učita konfiguraciju.
# initctl reload-konfiguracija.
Zatim započnite svoj posao upisivanjem sljedeće naredbe.
$ sudo započnite svoj naziv posla.
Gdje vaše radno mjesto naziv je posla koji je ranije dodan s yourjobname.conf skripta.
Potpuniji i detaljniji referentni vodič za Upstart dostupan je na web stranici projekta u izborniku “Kuharica”.
Poznavanje procesa pokretanja Linuxa potrebno je kako bi vam pomoglo pri rješavanju problema, kao i pri prilagodbi performansi računala i pokrenutih usluga vašim potrebama.
U ovom smo članku analizirali što se događa od trenutka kada pritisnete tipku Vlast prebacite da uključite stroj dok ne dobijete potpuno operativno korisničko sučelje. Nadam se da ste naučili čitati isto koliko i ja dok sam ga sastavljala. Slobodno ostavite svoje komentare ili pitanja ispod. Uvijek se veselimo čuti od naših čitatelja!