русский
Germany.ruForen → Архив Досок→ Linux & Co

Programming : Parent & Child Processes

90  
genocidee посетитель26.10.04 16:18
genocidee
26.10.04 16:18 
Привет!
здесь есть профи, кто мог бы мне подсказать в след. вопросе:
я создаю чилд-процесс через fork() потом убиваю его через kill(pid,SIGKILL,0); тока мой child процесс не умирает, падла такая, а становится зомби, пока его родитель-процесс не заканчивается. Вопрос - че делать с этими зомьбъями?
1.вариант делат wait(pid,0); после каждого kill()'а'bill'a, это не предлагать, есть другие варианты?
Is this the real world, Neo?
Is this the real world, Neo?
#1 
  =MOCKBA= прохожий27.10.04 22:57
NEW 27.10.04 22:57 
in Antwort genocidee 26.10.04 16:18
ну да родитель имеет pid а его клон от родительского процесса имеет ppid.
для прекращения выполнения процесса используют kill который посылает по умолчанию сигнал term. так поступают пользователи со своими процессами. но команда килл без номера сигнала не гарантирует что процесс умрет, поскольку сигнал терм можно перехватить, блокировать ну или просто игнорировать. Вообщето конечно более практична процесс убивается kill -сигнал pid (пример kill -9 pid), будет больше шансов что процесс помрет, поскоку сигнал -9, килл другими процессами не перехватываеца. Еще я кое что вспомнил ,,,, рекомендуют перед посылкой килл ... полезно посылать сигнал -1 отбоя HUP. Многие программы получая хап начинают перечитывать свои конфигурационные файлы, и расценивают это сигнал как типа "Скоро тебя могут убить", поэтому они начинают приводить себя в "соответствующее состояние".
Но как показывает практика бывает и так что процесс уже ничем убить низя ;)))) тока reboot. Надеюсь тебе это помогет
#2 
  =MOCKBA= прохожий27.10.04 23:01
NEW 27.10.04 23:01 
in Antwort =MOCKBA= 27.10.04 22:57
старинная шутка ...
while 1
mkdir adir
cd adir
touch afile
end
#3