Unix-alapok
A Unix/Linux szerverek üzemeltetése wikiből
(Változatok közti eltérés)
(→Processz állapottere: chroot hozzáadva) |
(→Ajánlott irodalom: Ajánlott irodalom linkesítve) |
||
85. sor: | 85. sor: | ||
Ezek megbízhatóbbak, de csak a signalokról van szó bennük: |
Ezek megbízhatóbbak, de csak a signalokról van szó bennük: |
||
− | * man 7 signal (különösen a realtime signalokról szóló rész tanulságos) |
+ | * [http://www.icewalkers.com/Linux/ManPages/signal-7.html man 7 signal] (különösen a realtime signalokról szóló rész tanulságos) |
− | * man 1 kill |
+ | * [http://man.splitbrain.org/kill(2) man 2 kill] ([http://man.splitbrain.org/kill(2)/hu magyarul]) |
− | * man 2 kill |
+ | * [http://man.splitbrain.org/kill(1) man 1 kill] ([http://man.splitbrain.org/kill(1)/hu magyarul]) |
A processzek lehetséges állapotairól: |
A processzek lehetséges állapotairól: |
||
− | * man ps |
+ | * [http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?ps man ps] |
A lap 2006. szeptember 14., 20:53-kori változata
A Unix:
- Többfelhasználós (multiuser)
- Többfeladatos (multitaszking)
- Hálózati (network)
operációs rendszer (operating system). De ezt úgyis tudtuk.
Egy csomó minden mást is tudunk, úgyhogy koncentráljunk inkább olyasmire, amit talán nem, vagy nem annyira pontosan.
1 Processz állapottere
- UID
- GID
- supplementary group memberships
- effektív UID (pl. setuid bit miatt lehet más)
- effektiv GID (pl. setgid bit miatt lehet más)
- current working directory
- filedeszkriptorok
- környezeti változók
- PGID
- kill -SIGNAL -PGID az egész process groupnak elküldi a signalt
- scheduler
- niceness
- resource limits
- root directory (chroot esetén változhat)
- stb.
2 Signalok
- Aszinkron jelzések processzek között
- Lehet hozzájuk handlereket regisztrálni
- Az érdektelenek kimaszkolhatók (kivéve KILL)
- Kézbesítésük nem feltétlenül azonnali (pl. D állapotú processz nem kapja meg, l. később)
- Signal küldése
- kill paranccsal
- kill() rendszerhívással
- sigqueue() rendszerhívással (ekkor adat is küldhető mellé)
- Hány signal állhat sorba? 1? Több? Házi feladat :)
- Néhány gyakori signal:
- HUP (HangUp)
- Ha eltűnik a terminál (pl. a user bezárja az ablakot)
- Daemonoknál gyakran: olvasd újra a configot
- INT (Interrupt)
- CTRL-C
- QUIT
- CTRL-\
- ILL (Illegal instruction)
- CPU-kivétel
- súlyos program- vagy hardverhibára utal
- KILL
- Kilépteti a processzt, nem maszkolható
- USR1
- Nincs előre definiált jelentése, szabadon felhasználható
- SEGV (Segmentation Violation)
- "A program érvénytelen műveletet hajtott végre"
- Tipikus okok:
- Pointer rossz helyre mutat (pl. túlcímeztünk egy tömböt)
- Valamit kértünk, nem sikerült, mégis használjuk (pl. nemlétező file-t próbáltunk megnyitni, és annak ellenére, hogy az open() hibát adott vissza, az érvénytelen filedescriptorból olvasni próbálunk)
- Vagyis: programhiba
- Lehet hardverhiba is
- USR2
- l. mint fent
- PIPE ("broken pipe")
- A pipe-unkat olvasó processz kilépett
- ALRM (Alarm)
- Időzítő lejárt
- TERM (Terminate)
- Default "lépj ki" signal
- CHLD (Child exited)
- Véget ért egy gyermekfolyamatunk
- CONT (Continue)
- Folytatódhat a végrehajtás STOP vagy TSTP után
- STOP
- Felfüggesztés
- TSTP (Terminal stop)
- Felfüggesztés CTRL-Z hatására
- XCPU (CPU time exceeded)
- Lejárt a megengedett CPU-idő
- WINCH (Window changed)
- Megváltozott a terminál mérete
- HUP (HangUp)
3 Ajánlott irodalom
Ezeket részben hallgatók írták egy másik tárgy óráin elhangzottak alapján, úgyhogy lehetnek bennük tévedések:
- 2004. őszi "alapozólabor" első gyakorlatának óravázlata
- 2005. tavaszi "alapozólabor" első gyakorlatának óravázlata
- 2005. őszi "alapozólabor" első gyakorlatának óravázlata
- 2006. tavaszi "alapozólabor" első gyakorlatának óravázlata
Ezek megbízhatóbbak, de csak a signalokról van szó bennük:
- man 7 signal (különösen a realtime signalokról szóló rész tanulságos)
- man 2 kill (magyarul)
- man 1 kill (magyarul)
A processzek lehetséges állapotairól: