Administrarea sistemelor Linux

Cursul 5 Notiuni de configurare de baza Dragoş Acostăchioaie
http://www.adt.ro

Pornirea si oprirea sistemului
Pornirea sistemului
­ pornirea nucleului Linux ­ initializeaza echipamentele cunoscute ­ monteaza sistemul de fisiere radacina in mod read­only ­ executa /sbin/init ­ init devine parintele tuturor proceselor care vor fi pornite ulterior ­ executa scriptul /etc/rc.d/rc.sysinit ­ verifica integritatea sistemului radacina apeland fsck ­ verifica integritatea celorlalte sisteme de fisiere din /etc/fstab ­ monteaza sistemele de fisiere locale ­ initializeaza memoria virtuala ­ initializeaza ceasul sistemului ­ executa rc.serial pentru a initializa porturile seriale speciale

Pornirea sistemului (continuare)
­ citeste configurarile din /etc/inittab, care descrie fiecare nivel de executie si stabileste nivelul implicit ­ executa scripturile asociate nivelului implicit de executie, aflate in directorul /etc/rc.d/rcN (N = nivelul de executie) ­ executa scriptul /etc/rc.d/rc.local, care efectueaza initializari locale

Nivelurile de executie
­ standardul UNIX System V defineste o serie de stari ale sistemului, denumite niveluri de executie (run levels) ­ la un moment dat, sistemul se gaseste in una din aceste stari ­ poate fi trecut oricand intr­o alta stare (nivel) ­ nivelurile de executie: ­ 0 – starea de oprire (halt): starea in care sistemul poate fi oprit in siguranta ­ 1 – starea de reparare a sistemului (single user): nu este montata decat partitia radacina, reteaua nu este activata iar serviciile nu sunt pornite; este pornit doar un interpretor de comenzi; se foloseste atunci cand apar defectiuni in sistem, de ex. defectiunea unei partitii ­ 2 – starea normala a sistemului, fara NFS (multi­user without NFS) ­ 3 – starea normala a sistemului (multiuser) ­ 4 – neutilizata

Nivelurile de executie (continuare)
­ 5 – starea normala a sistemului, cu login X Window ­ 6 – starea de repornire (reboot) ­ exista o serie de niveluri de executie aditionale, desemnate prin litere ­ nu reprezinta stari distincte, ci folosesc pentru a comunica programului init sa execute anumite operatiuni ­ schimbarea nivelului de executie se face prin telinit (legatura simbolica la init), primind ca argument un caracter si executa o actiune: ­ 0, 1, 2, 3, 4, 5, 6 – schimba nivelul de executie ­ q, Q – reciteste /etc/inittab ­ s, S – trece in mod single­user ­ u, U – reexecuta programul init

Utilizarea modului single
­ nivelul de executie single se foloseste pentru activitati administrative ­ pentru a initializa acest mod, init executa un interpretor de comenzi sub utilizatorul root ­ serviciile sistemului nu sunt disponibile, nefiind disponibila executia daemonilor sau altor programe in fundal ­ sistemul poate fi pornit in mod single furnizand nucleului Linux optiunea single, la promptul incarcatorului de comenzi ­ este posibil ca sistemul sa porneasca automat in mod single, atunci cand in cadrul procesului de pornire apar probleme care nu pot fi rezolvate automat (de exemplu cand fsck detecteaza erori care nu pot fi reparate in mod implicit) ­ pornirea sistemului poate continua terminand executia shell­ului

Fisierele de configurare System V
­ fisierul /etc/inittab contine intrari care definesc actiunile sistemului atunci cand acesta intra in fiecare nivel de executie, cu formatul: eticheta : lista_stari : actiune : proces ­ eticheta – eticheta unica ce identifica fiecare intrare (maxim 4 car.) ­ lista_stari – lista nivelurilor la care se aplica intrarea; daca este vida, intrarea se aplica la toate nivelurile de executie ­ proces – programul care va fi executat ­ actiune – indica modul in care init trateaza procesul executat de intrare atunci cand sistemul intra intr­un nou nivel de executie, init prelucreaza toate intrarile specificate pentru respectivul nivel, in ordinea aparitiei in fisierul de configurare: ­ wait – porneste procesul si asteapta sa se incheie inainte de a trece la urmatoarea intrare

Fisierele de configurare System V (continuare)
­ respawn – porneste procesul si il reporneste daca aceste isi termina executia (utilizata in general pentru procesele de tip getty) ­ once – porneste procesul doar daca acesta nu ruleaza deja; nu asteapta incheierea lui ­ boot – executa procesul doar la pornirea sistemului; nu asteapta incheierea ­ bootwait – executa procesul doar la pornirea sistemului; asteapta incheierea ­ initdefault – stabileste nivelul de executie implicit; de obicei are valoarea 3 ­ off – daca procesul ruleaza, il opreste ­ ondemand – procesul va fi executat cand respectivul nivel este apela; nu va avea loc o schimbare de nivel de executie; nivelurile de acest tip pot fi a, b sau c ­ ctrlaltdel – procesul va fi executat cand init primeste semnalul SIGINT (cand s­a apasat Ctrl+Alt+Del la consola)

Fisierele de configurare rc
­ la schimbarea nivelului de executie, init apeleaza scriptul /etc/rc.d/rc, care executa toate scripturile din directorul /etc/rc.d/rcn.d, unde n este numarul noului nivel ­ toate numele de fisiere incep cu un caracter initial (S sau K), urmat de un numar format din doua cifre, sfarsindu­se cu numele serviciului ­ sunt executate mai intai scripturile care incep cu K (folosite pentru a incheia procese), urmate de cele care incep cu S (utilizate pentru a porni procese), in ordine alfabetica ­ scripturile din directoarele rcn.d sunt de obicei legaturi la scripturile aflate in /etc/rc.d/init.d ­ atunci cand un script K este executat, acesta primeste parametrul stop, iar scriptul S, parametrul start

Oprirea sistemului
­ se foloseste comanda shutdown ­ atentioneaza utilizatorii ca sistemul urmeaza sa fie oprit ­ sunt blocate intrarile utilizatorilor in sistem ­ trece sistemul in nivelul de executie 0 (pentru oprire) sau 6 (pentru repornire) ­ este trimis proceselor semnalul SIGTERM, oferindu­le timp pentru a­si incheia executia ­ este trimis proceselor semnalul SIGKILL ­ sunt demontate toate sistemele de fisiere montate ­ calculatorul este oprit sau repornit ­ shutdown [ optiuni ] timp [ mesaj ] ­ ­t sec – asteapta sec secunde intre trimiterea semnalului SIGTERM si SIGKILL ­ ­r – reporneste sistemul

Oprirea sistemului (continuare)

­ ­h – opreste sistemul ­ ­c – anuleaza un apel shutdown in curs ­ timp – timpul la care va fi inceputa procedura de oprire ­ hh:mm – timp absolut ­ +m – numar de minute dupa care va fi oprit sistemul ­ now – imediat ­ mesaj – mesajul de atentionare trimis utilizatorilor ­ alte comenzi ­ halt ­ poweroff (trimite si comanda de oprire) ­ reboot, Ctrl+Alt+Del

Pornirea, repornirea si oprirea serviciilor

­ se apeleaza scriptul ­ /etc/rc.d/init.d/nume_serviciu cu parametrul: ­ start – porneste serviciul ­ stop – opreste serviciul ­ restart – reporneste serviciul ­ status – verifica daca serviciul este activ ­ se foloseste comanda service nume_serviciu actiune

Daemonul xinetd
­ daemonul xinetd are rolul de a superviza activitatea unor servicii (FTP, POP3, telnet etc.) ­ xinetd asteapta conexiuni pe o serie de porturi, iar cand apare o cerere lanseaza un program care o trateaza ­ dupa ce programul si­a incheiat executia, xinetd continua sa accepte conexiuni ­ se configureaza prin intermediul /etc/xinetd.conf ­ serviciile prin intermediul xinetd se gestioneaza cu chkconfig

Utilitarul chkconfig
­ chkconfig configureaza serviciile sistemului: ­ chkconfig [ ­­list ] [ ­­add ] [ ­­del ] [ ­­level lista_niveluri ] serviciu [ actiune ] ­ lista_niveluri – lista de niveluri de executie in care se doreste activarea/ dezactivarea serviciului ­ actiune – poate fi on sau off – pentru activarea/dezactivarea serviciului ­ ­­list – afiseaza toate serviciile inregistrate, precum si setarile pentru fiecare nivel de executie in parte ­ ­­add – adauga serviciul specificat in lista de servicii inregistrate ­ ­­del – sterge serviciul din lista de servicii inregistrate