A linux alapjai VI.
Egy linux rendszerben a legtöbb fontos funkciót scriptek csinálják. Ezeket a shell értelmezi és hajtja végre, általában - a kompatibilitás miatt - sh, a bash elődje, mert ez a legtöbb szabvány Unixon megtalálható. A bootkor lefutó scriptek a legtöbb disztribúciónál az rc.sysinit és az rc, ezek ellenőrzik a filerendszereket, és indítják el a daemon-okat.
A daemon-ok (sshd, ftpd, nfsd, stb.) saját scriptekkel rendelkeznek, amelyek a /etc/rc.d/init.d-ben (Redhat, Mandrake), /etc/init.d-ben (Debian), vagy a /etc/rc.d-ben (SuSE) találhatók. Ezeknek a szokásos paraméterei általában start, stop, restart, esetleg reload, az ftpd példáján bemutatva:
/etc/rc.d/init.d/ftpd restart
Ez a parancs leállítja az ftp szervert, majd újraindítja. Akkor van erre szükség, ha például a konfigurációt megváltoztattuk, ilyenkor a szerver a változásokat életbe léptetve működik tovább. Némely daemonok, amelyek a reload parancsot is támogatják, a konfigurációt újraolvastatják a szolgáltatás leállítása nélkül, így például a letöltések nem szakadnak meg. Hasonlóképpen vonatkozik ez a hálózati, ip- és egyéb beállításokra, egérdriverre, így nem kell a változtatások elvégzésekor rebootolnunk. Ez egyébként kézenfekvő, mert egy olyan operációs rendszernél, amely elsősorban szerverfunkciókra és megbízhatóságra lett tervezve, nem járható út a gép újraindítgatása a beállítások tekergetésekor.
Mostanra a linux régi, hagyományos problémái sokat javultak. Így például jó a konfigurálás lehetősége: a disztribúciók tartalmaznak olyan rendszergazdai felületet, ahol egy helyen gyakorlatilag mindent be lehet állítani, a felhasználók adminisztrálásától a filerendszereken és a szolgáltatásokon át a modem, a LILO illetve a rendszeróra paraméterezéséig (yast/linuxconf). Egy linuxos rendszergazdának, ha nem sokfelhasználós, komoly szervernek használja a gépet, ritkán kell más segédeszközhöz nyúlnia a gépe üzemben tartásához, mint a konfiguráló segédprogram és a szolgáltatásokat irányító scriptek. Egy screenshot saját képernyőmről (RH 6.2, gnome-linuxconf):

Egy program, amit a shellből indítunk (többnyire: begépeljük a nevét), alapértelmezés szerint általában "előtérben" fut, azaz a promptot nem kapjuk vissza addig, amíg be nem fejeződött, az esetleges inputot pedig a program tőlünk várja. Ha a program neve mögé egy & jelet teszünk, a shell automatikusan a háttérben indítja el. Ugyanez történik, ha felfüggesztünk valamit, és a bg paranccsal háttérbe küldjük. Ekkor a promptot visszakapjuk, a shell továbbra is várja a parancsainkat, ennek viszont az a következménye, hogy a billentyűzetről nem tudunk közvetlenül kommunikálni a háttérbe tett programmal, hiszen amit beírunk, el sem jut hozzá. A processz kimenete (ahova ír) viszont változatlan marad, tehát például az általa kiírt szöveg ugyanott jelenik meg, ahol elindítottuk, így alkalmasint a képernyő összekuszálódhat, keveredhetnek a beírt dolgok a kijelzettekkel. Ebben az esetben a CTRL+L lenyomásával a képernyőt frissíthetjük, a szemetet eltüntethetjük.
Shelltől függetlenül is megnézhetjük a futó processzek listáját ps paranccsal (sokféleképp paraméterezhető). Minden processz PID-et (Process Identification Number) kap a kerneltől, ezek a célszerűség kedvéért sorban számozódnak a gép indítása óta. Az összes programot elérhetjük, ha ezzel a számmal hivatkozunk rá, melyet a ps is kijelez. A processzeknek jelzéseket (SIGNAL) küldhetünk, amelyekkel utasíthatjuk - szintén shelltől függetlenül - őket például befejezésre (SIGTERM), felfüggeszthetjük (SIGSTOP), újraindíthatjuk (SIGCONT), vagy feltétel nélkül, erőszakkal, a kernel segítségével kilőhetjük (SIGKILL). Erre az utóbbi lépésre akkor lehet szükség, ha valamelyik program beragad és nem válaszol, egyéb esetben nem célszerű alkalmazni.
További nagyon hasznos segédprogram a top, amellyel folyamatosan nézhetjük, hogy mely processzek futnak milyen prioritással, és mekkora erőforrásokat használnak:

A daemon-ok (sshd, ftpd, nfsd, stb.) saját scriptekkel rendelkeznek, amelyek a /etc/rc.d/init.d-ben (Redhat, Mandrake), /etc/init.d-ben (Debian), vagy a /etc/rc.d-ben (SuSE) találhatók. Ezeknek a szokásos paraméterei általában start, stop, restart, esetleg reload, az ftpd példáján bemutatva:
Ez a parancs leállítja az ftp szervert, majd újraindítja. Akkor van erre szükség, ha például a konfigurációt megváltoztattuk, ilyenkor a szerver a változásokat életbe léptetve működik tovább. Némely daemonok, amelyek a reload parancsot is támogatják, a konfigurációt újraolvastatják a szolgáltatás leállítása nélkül, így például a letöltések nem szakadnak meg. Hasonlóképpen vonatkozik ez a hálózati, ip- és egyéb beállításokra, egérdriverre, így nem kell a változtatások elvégzésekor rebootolnunk. Ez egyébként kézenfekvő, mert egy olyan operációs rendszernél, amely elsősorban szerverfunkciókra és megbízhatóságra lett tervezve, nem járható út a gép újraindítgatása a beállítások tekergetésekor.
Mostanra a linux régi, hagyományos problémái sokat javultak. Így például jó a konfigurálás lehetősége: a disztribúciók tartalmaznak olyan rendszergazdai felületet, ahol egy helyen gyakorlatilag mindent be lehet állítani, a felhasználók adminisztrálásától a filerendszereken és a szolgáltatásokon át a modem, a LILO illetve a rendszeróra paraméterezéséig (yast/linuxconf). Egy linuxos rendszergazdának, ha nem sokfelhasználós, komoly szervernek használja a gépet, ritkán kell más segédeszközhöz nyúlnia a gépe üzemben tartásához, mint a konfiguráló segédprogram és a szolgáltatásokat irányító scriptek. Egy screenshot saját képernyőmről (RH 6.2, gnome-linuxconf):

[oldal:Job control]
A felhasználó irányítással rendelkezik saját processzei (futó programjai) fölött. Beavatkozhat, állíthatja a prioritásukat, felfüggesztheti és folytathatja, vagy véglegesen leállíthatja őket. Mindehhez nincs közük a programoknak, ők erről nem tudnak, és nem is kell tudniuk, hiszen a beavatkozásokat a kernel végzi. A shell is tartalmaz beépített funkciókat a processzek irányítására, így például a bg (background) paranccsal tudunk egy, a shell gyermekeként született, de felfüggesztett programot további futásra utasítani, és az fg paranccsal tudjuk előtérbe hozni. A jobs segítségével megnézhetjük, hogy kedvenc shellünk milyen processzeket szült; ezek sorszámozva vannak, ezekkel a számokkal hivatkozhatunk rájuk a bg, illetve fg parancsoknál.Egy program, amit a shellből indítunk (többnyire: begépeljük a nevét), alapértelmezés szerint általában "előtérben" fut, azaz a promptot nem kapjuk vissza addig, amíg be nem fejeződött, az esetleges inputot pedig a program tőlünk várja. Ha a program neve mögé egy & jelet teszünk, a shell automatikusan a háttérben indítja el. Ugyanez történik, ha felfüggesztünk valamit, és a bg paranccsal háttérbe küldjük. Ekkor a promptot visszakapjuk, a shell továbbra is várja a parancsainkat, ennek viszont az a következménye, hogy a billentyűzetről nem tudunk közvetlenül kommunikálni a háttérbe tett programmal, hiszen amit beírunk, el sem jut hozzá. A processz kimenete (ahova ír) viszont változatlan marad, tehát például az általa kiírt szöveg ugyanott jelenik meg, ahol elindítottuk, így alkalmasint a képernyő összekuszálódhat, keveredhetnek a beírt dolgok a kijelzettekkel. Ebben az esetben a CTRL+L lenyomásával a képernyőt frissíthetjük, a szemetet eltüntethetjük.
Shelltől függetlenül is megnézhetjük a futó processzek listáját ps paranccsal (sokféleképp paraméterezhető). Minden processz PID-et (Process Identification Number) kap a kerneltől, ezek a célszerűség kedvéért sorban számozódnak a gép indítása óta. Az összes programot elérhetjük, ha ezzel a számmal hivatkozunk rá, melyet a ps is kijelez. A processzeknek jelzéseket (SIGNAL) küldhetünk, amelyekkel utasíthatjuk - szintén shelltől függetlenül - őket például befejezésre (SIGTERM), felfüggeszthetjük (SIGSTOP), újraindíthatjuk (SIGCONT), vagy feltétel nélkül, erőszakkal, a kernel segítségével kilőhetjük (SIGKILL). Erre az utóbbi lépésre akkor lehet szükség, ha valamelyik program beragad és nem válaszol, egyéb esetben nem célszerű alkalmazni.
További nagyon hasznos segédprogram a top, amellyel folyamatosan nézhetjük, hogy mely processzek futnak milyen prioritással, és mekkora erőforrásokat használnak:

[oldal:Ende]
Ezzel a kezdőknek szánt, linuxot bemutató sorozat itt véget ért. Reméljük, hogy sok zavaros dologról lebbentettük fel a fátylat, és minél kevesebb témában sikerült teljes sötétséget okoznunk. A továbbiakban is lesznek természetesen cikkek sokféle dologról, no meg olyanokról, amikre kértek minket. Ha van olyan, amiről szeretnétek olvasni, vagy valamivel kapcsolatban egyszerűen csak közmegnemértés állapota forog fenn :), ne habozzatok írni, a lehető leglassabban teljesítjük a kívánságokat.