URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 8721
[ Назад ]

Исходное сообщение
"Perl нити."

Отправлено DeM.ON , 07-Май-10 21:13 
Доброго времени суток, форумчане!
Вопрос по разработке Perl демона.
Я хочу чтобы мой основной скрипт daemon.pl смог запустить дочерний скрипт(допустим child.pl), но родитель чтобы не дожидался выполнения скрипта, а работал дальше.
Такое вообще возможно?
Перебрал много вариантов но решения так и не нашел, возможно чего недопонял...(
Заранее благодарен!

Содержание

Сообщения в этом обсуждении
"Perl нити."
Отправлено аноним , 07-Май-10 21:42 
perldoc -f fork
perldoc -f exec

"Perl нити."
Отправлено DeM.ON , 08-Май-10 11:13 
>perldoc -f fork
>perldoc -f exec

Очень продуктивный ответ послать поучится.) Только вот fork создан для дублирования родителя, а мне нужно запускать абсолютно другой скрипт.
А функция exec запускает без проблем только ждет окончания выхода из процесса для продолжения исполнения.
Я просил ответить профессионалов, ответы типа MAN perl и т.д. я знаю!
Ребятки поделитесь опытом если кто сталкивался с проблемой, все еще жду ответа!


"Perl нити."
Отправлено Michael , 08-Май-10 13:41 

>Очень продуктивный ответ послать поучится.) Только вот fork создан для дублирования родителя,
>а мне нужно запускать абсолютно другой скрипт.
>А функция exec запускает без проблем только ждет окончания выхода из процесса
>для продолжения исполнения.

полный бред


"Perl нити."
Отправлено arturpub , 08-Май-10 18:56 
>>perldoc -f fork
>>perldoc -f exec
>
>Очень продуктивный ответ послать поучится.) Только вот fork создан для дублирования родителя,
>а мне нужно запускать абсолютно другой скрипт.
>А функция exec запускает без проблем только ждет окончания выхода из процесса
>для продолжения исполнения.

exec() в случае удачи заместит текущий процесс новым и никогда не вернется, ну и плюс еще пара особенностей, которые описаны непосредственно в `perldoc -f exec`. прочитал бы хоть сначала.

$SIG{CHLD} = "IGNORE"; # -v SIG, -f wait, -f waitpid
defined($pid = fork()) or die;
if (!$pid) { exec(@args) or die }


"Perl нити."
Отправлено arturpub , 08-Май-10 18:56 
чо-то не туда нажал, задублил...

"Perl нити."
Отправлено mr_gfd , 08-Май-10 11:35 
>Доброго времени суток, форумчане!
>Вопрос по разработке Perl демона.
>Я хочу чтобы мой основной скрипт daemon.pl смог запустить дочерний скрипт(допустим child.pl),
>но родитель чтобы не дожидался выполнения скрипта, а работал дальше.
>Такое вообще возможно?
>Перебрал много вариантов но решения так и не нашел, возможно чего недопонял...(
>
>Заранее благодарен!

http://www.xav.com/perl/lib/Pod/perlthrtut.html
http://www.perlmonks.org/?node_id=615459

И, стоит не забывать, что не во всех системах perl собран по умолчанию с нитями. К примеру, FreeBSD - перловые пакаджи без тредов. При пересборке самого перла обязательно пересобирать _все_, что от него зависит, стоб не получать сомнительного толка сегфолты.


"Perl нити."
Отправлено DeM.ON , 08-Май-10 11:53 
>[оверквотинг удален]
>>
>>Заранее благодарен!
>
>http://www.xav.com/perl/lib/Pod/perlthrtut.html
>http://www.perlmonks.org/?node_id=615459
>
>И, стоит не забывать, что не во всех системах perl собран по
>умолчанию с нитями. К примеру, FreeBSD - перловые пакаджи без тредов.
>При пересборке самого перла обязательно пересобирать _все_, что от него зависит,
>стоб не получать сомнительного толка сегфолты.

Спасибо большое! Буду разбираться!)


"Perl нити."
Отправлено Square , 08-Май-10 18:10 
>[оверквотинг удален]
>>
>>http://www.xav.com/perl/lib/Pod/perlthrtut.html
>>http://www.perlmonks.org/?node_id=615459
>>
>>И, стоит не забывать, что не во всех системах perl собран по
>>умолчанию с нитями. К примеру, FreeBSD - перловые пакаджи без тредов.
>>При пересборке самого перла обязательно пересобирать _все_, что от него зависит,
>>стоб не получать сомнительного толка сегфолты.
>
>Спасибо большое! Буду разбираться!)

или наконец осмыслить что написано в
    perldoc -f fork
    perldoc -f exec