Mediul grafic K

Cap. 1. Introducere

Acesta este editorul de inițializare în stil System V, cunoscut și sub numele de ksysv, nume pe care îl voi utiliza în continuare. Această secțiune introduce cîteva concepte și explică ceea ce puteți face cu ksysv.

Explicațiile următoare sînt "împrumutate" din tksysv (sursa de inspirație pentru ksysv):

1.1. O scurtă descriere a inițializării de tip System V

Inițializarea System V a devenit rapid standardul în lumea Linux pentru controlul startării programelor la momentul pornirii sistemului (procesul de boot-are), datorită faptului că este ușor de utilizat și mult mai puternică și flexibilă decît tradiționala inițializare BSD.

Nu voi intra aici în istorie (în primul rînd pentru că nici nu o cunosc).

Executabilul init se află în directorul /sbin și nu în /etc. Acest lucru este important pentru cineva care încearcă șă își actualizeze sistemul la inițializarea System V fără a reformata și reinstala. Nucleul Linux (kernel-ul) caută programul init mai întîi în directorul /etc, deci trebuie să ștergeți vechiul init de acolo, dacă există.

Dealtfel, sistemul de inițializare SysV diferă de inițializarea BSD prin aceea că fișierele de configurare sînt într-un subdirector al /etc în loc de a se afla direct în /etc. Acest director se numește rc.d. În el veți găsi rc.sysinit și următoarele directoare:

 init.d/
 rc0.d/ 
 rc1.d/ 
 rc2.d/ 
 rc3.d/ 
 rc4.d/
 rc5.d/
 rc6.d/ 

init.d conține mai multe scripturi. În mod normal aveți nevoie de cîte un script pentru fiecare serviciu pe care doriți să-l startați la pornire sau cînd comutați în alt nivel de execuție. Serviciile includ, de exemplu, serviciile de rețea, nfs, sendmail, httpd etc. Serviciile nu includ programe ca setserial, care trebuie rulate o singură dată. Acestea trebuie să se găsească în rc.local.

rc.local trebuie pus în /etc/rc.d dacă aveți nevoie de un asemenea script. Multe sisteme includ unul chiar dacă nu este foarte necesar. Dealtfel, puteți include rc.serial în /etc/rc.d dacă aveți nevoie ca la startare să realizați setări specifice ale portului serial.

Lanțul de evenimente este următorul:

Nivelul de execuție implicit este decis în fișierul /etc/inittab. La începutul fișierului trebuie să aveți o linie ca:

 id:3:initdefault: 

Dacă ne uităm la aceasta în a doua coloană, vom vedea că nivelul de execuție implicit este 3, așa trebuind să fie pe majoritatea sistemelor. Dacă doriți să-l schimbați, puteți edita manual /etc/inittab și modifica valoarea 3. Fiți foarte atenți cînd lucrați cu inittab. Dacă faceți vreo greșeală, puteți să o reparați prin restartarea calculatorului, dînd comanda:

 LILO boot: linux single 

Această comandă trebuie să vă permită startarea în modul mono-utilizator și atunci puteți repara greșeala.

Cum se execută toate scripturile? Dacă dați comanda ls -l în directorul rc3.d, puteți vedea ceva de genul:

 lrwxrwxrwx 1 root root 13 13:11 S10network ->
 ../init.d/network
 lrwxrwxrwx 1 root root 16 13:11 S30syslog ->
 ../init.d/syslog
 lrwxrwxrwx 1 root root 14 13:32 S40cron ->
 ../init.d/cron
 lrwxrwxrwx 1 root root 14 13:11 S50inet ->
 ../init.d/inet
 lrwxrwxrwx 1 root root 13 13:11 S60nfs ->
 ../init.d/nfs
 lrwxrwxrwx 1 root root 15 13:11 S70nfsfs ->
 ../init.d/nfsfs
 lrwxrwxrwx 1 root root 18 13:11 S75keytable ->
 ../init.d/keytable
 lrwxrwxrwx 1 root root 23 13:11 S80sendmail ->
 ../init.d/sendmail.init
 lrwxrwxrwx 1 root root 18 13:11 S90lpd ->
 ../init.d/lpd.init
 lrwxrwxrwx 1 root root 11 13:11 S99local ->
 ../rc.local

Ceea ce trebuie să remarcați este că nu există "fișiere" reale în director. Toate acestea sînt legături simbolice la scripturi din directorul init.d. Legăturile au un "S" și un număr la început. Litera "S" înseamnă că acest script este pornit și "K" semnifică oprirea lui. Numărul este doar pentru necesități de ordonare. init va starta toate serviciile bazîndu-se pe ordinea în care apar. Puteți duplica numerele, dar veți obține ceva confuz. Pentru a porni sau opri serviciile dorite aveți nevoie doar de un număr de două cifre, precedat de literele (litere mari) "S" sau "K".

Cum sînt pornite sau oprite serviciile? Simplu. Fiecare dintre aceste scripturi este conceput să accepte un argument care poate fi "start" sau "stop". De fapt puteți executa manual aceste scripturi cu o comandă de genul:

 /etc/rc.d/init.d/httpd.init stop 

pentru a opri serverul httpd. Executabilul init citește doar numele și, dacă are la început "K", apelează scriptul cu argumentul "stop". Dacă începe cu "S" apelează scriptul cu argumentul "start".

1.1.1. De ce toate aceste nivele de execuție?

Unii oameni doresc o cale ușoară de configurare a mașinilor pentru a fi multi-funcționale. Pot avea un nivel de execuție "server" în care să ruleze httpd, sendmail, programe de rețea etc. Mai pot avea un nivel de execuție "utilizator (user)" în care să ruleze xdm, programe de rețea etc.