Co s neKILLnutelnym procesem?

d.petr d.petr na post.cz
Úterý Listopad 29 09:18:39 CET 2011


Dobrý den,
projevila se mi opakovatelná zvláštnost - proces, který nejde KILLnout. Víte-li někdo, co s tím, rád se poučím.

Jak k tomu dochází:
Na svém ARM spustím z 'mc' program s defaultovou prioritou (tzn. spustí se 'sh' a ten program). Program si otevře 2 vlákna s prioritou RT. Jedno z těch RT-vláken se pokusí o přístup do paměti mimo prostor programu. Tím způsobí chybu, kterou by, dle mého, mělo jádro vyřešit zlikvidováním všech vláken programu, po té by se ukončil 'sh' a obnovil 'mc'. To se ovšem nestane.

Následky:
Jsou ukončena obě RT-vlákna. Zůstane však původní hlavní vlákno programu (sleduji programem 'top -H'; PID patří původnímu hlavnímu vláknu, další hodnoty jsou PR=20, NI=0, VIRT=RES=SHR=0, S="S", %CPU=%MEM=0). Toto vlákno tedy zřejmě neběží, uvolní veškerou paměť, bohužel ale ne např. obsazený port UDP (hlavní vlákno při spuštění otevřelo serverovou stranu komunikace UDP).
A tento pozůstatek programu nejde KILLnout ani v 'top', ani příkazem killall, ani 'kill PID', ani použitím 'kill -9 PID' (všechny pokusy o zničení spouštím jako root, program byl také spuštěn rootem). Odstranit ho umím pouze restartem celého stroje.

Ví někdo, jak na podobného nezmara?
PM


Další informace o konferenci Linux