Script kilövése nem öli meg az általa indított folyamatot. Hogy van ez?

Üdv! Van egy nagyon egyszerű kérdésem. Csináltam egy egyszerű valamit ami a háttérben futna, maga a program az egy végtelen ciklus, és beraktam egy shell scriptbe, ami a biztonság kedvéért szintén egy végtelen ciklus, és a programot indítja újra.

pl: teszt.sh
while [ 1 ]; do /valahol/teszt.py; done

teszt.py

#!/usr/bin/env python
while 1: print "valami"

namost ha én ezt le akarnám állítani úgy, hogy killall teszt.sh, akkor a shell script megáll, de a program fut tovább
nem akartam pidek lementésével szórakozni, ill sok időt szánni a dologra (ezért írtam így meg).

Namost, megoldottam a problémát azzal, hogy a python program letárolja a saját pid-jét, és azt is megölöm, csupán kíváncsi vagyok, hogy miért nem hal meg a programom "magától", ha az azt indító folyamat meghal? Azért vagyok kíváncsi, mert máskor pont azt tapasztaltam, hogy folyamatok sora hal meg, ha a szülő kiesik, pl kilövöm a terminált, akkor a benne futó alkalmazás nem fut tovább (még a háttérben& indított sem)

Hozzászólások

Szerintem ez azért van, mert a python beállítja magának azt, amit a shell normálisan csak akkor csinál ha nohup-al indítod a processzt.
Amikor indítasz egy új processzt akkor az defaultban örökli a szülőtől ezeket a signal block meg signal ignore bitmap-ket.
Viszont ezt az adott processz modosíthatja és úgy néz ki a python így is tesz.
Van itt ez a kis progi: http://brokestream.com/procstat.html
Ezzel meg tudod nézni ezeket a map-eket egy adott processzhez.
Szóval annyi van hogy az a processz ignorálja a SIGHUP signal-t, amit akkor kap amikor a szülője kilép.