Forum Webscript.Ru
Программирование => Perl => Тема начата: Skif от 24 Декабря 2004, 14:23:07
-
Собственно сабж. Мне нужно по ходу выполнять несколько процессов не выходя из кода. По соображениям безопасности и красивости кода не охота применять system
Вариант fork + exec, но у меня процессы взаимосвязаны и занимают n-ное время. не всегда одинаковое. то есть просто sleep сказать мало на этот период. Вот и собственно вопрос: альтернатива с точки зрения безопасности?
-
# perldoc -f system
system LIST
system PROGRAM LIST
Does exactly the same thing as "exec LIST", except that a fork
is done first, and the parent process waits for the child pro-
cess to complete.
-
Оно-то хорошо, вот только у меня народ софтинку не хотит принимать. Грит это не безопасный код, где присутствует system Хочется реально взглянуть, что может быть заменой или опровержением этого утверждения
-
тогда может альтернативный вопрос, а как из родительского процесса убедиться, что дочерний завершил работу? Я понимаю, что можно проверять на наличие ID, но к примеру дочерний проработает сегодня 5 сек, а завтра всего одну. на сколько sleep включать или по кругу бахать? может есть все же альтернатива? так что бы до тех пор пока дочерний не умрет родительский заснул?
-
Skif, читай про сигналы.
-
perldoc -f wait
-
спасибо! Оно. Хотя сейчас почитал немного доки в этом направлении, думаю, что waitpid будет даже лучше. Но все равно спасибо за пинок туда куда надо.