LINUX.ORG.RU

Perl - release control --HOWTO?


0

0

Hi, all!

Sorry za translit: klaviatura bez russkih bukovok %) (net vozmojnosti nastroit').

Vopros: kak iz skripta na perle vernut' upravlenie terminalke (ili tomu, chto zapustilo perl) - t.e. skript tiho vipolniaetsia, no ob etom nikomu i nichego ne govorit. :)

Zachem: bredovaia ideia: skript kopiruet sebia, zapuskaet kopiiu, kopia ubivaet predidus'hii script, che-nit' delaet i snova sebia kopiruet. Kopirovanie - chtobi slojno bilo vruchnuiu "poimat' za hvost".

Vot. Esli dlia dannoi zatei (kopirovanie-udalenie) est' al'ternativnii metod --help.

anonymous

Re: Perl - release control --HOWTO?

Тебе просто нужна "демонизация" процесса.
На Perl для этого смотри perldoc perlipc, параграф
"Complete Dissociation of Child from Parent", там есть
пример функции daemonize().

P.S. Твой бред про "копирование" скрипта я не понял :-/

HTH

Onanim ()
Ответ на: Re: Perl - release control --HOWTO? от Onanim

Re: Perl - release control --HOWTO?

Thanks. S'ha glianu.

Bred pro kopirovanie: est' 1.pl; 1.pl kopiruet sebia v 2.pl; 1.pl vipoliaet kakoe-nit' deistvie; 1.pl zapuskaet 2.pl; 1.pl zavershaet svoiu rabotu; 2.pl udaliaet 1.pl; 2.pl kopiruet sebia v 3.pl; ... i t.d. 4.pl, 5.pl, 6.pl... poka ne proizoidet chto-to (v moem skripte idet proverka na nalichie faila "stop").

anonymous ()
Ответ на: Re: Perl - release control --HOWTO? от anonymous

Re: Perl - release control --HOWTO?

> Bred pro kopirovanie: est' 1.pl; 1.pl kopiruet sebia v 2.pl; 1.pl
> vipoliaet kakoe-nit' deistvie; 1.pl zapuskaet 2.pl; 1.pl zavershaet
> svoiu rabotu; 2.pl udaliaet 1.pl; 2.pl kopiruet sebia v 3.pl; ... i t.
> d. 4.pl, 5.pl, 6.pl... poka ne proizoidet chto-to (v moem skripte idet
> proverka na nalichie faila "stop").

Да пожалуйста, в чем проблема.
Этот твой алгоритм _никак_ не связан с "демонизацией" и возвращением
управления вызвавшей программе.
Ты просто используешь exec (perldoc exec) и запускаешь по цепочке
скрипты хоть до усрачки. Но процесс при этом останется тем же самым.
Или делай не просто exec, а fork+exec (а parent-процесс завершай),
тогда получишь каждый раз новый процесс.

А что ты собственно пытаешься сделать?
Сдается мне ты сам толком не понимаешь, что тебе нужно.
"Чтобы задать правильный вопрос надо знать половину ответа" (C)

Onanim ()

Re: Perl - release control --HOWTO?

> Kopirovanie - chtobi slojno bilo vruchnuiu "poimat' za hvost".

Чтобы поймать достаточно застопить|убить процесс perl

aton ()
Ответ на: Re: Perl - release control --HOWTO? от aton

Re: Perl - release control --HOWTO?

#!/usr/bin/perl use POSIX 'setsid'; sub daemonize { chdir '/'; open STDIN, '/dev/null'; open STDOUT, '>/dev/null'; defined(my $pid = fork); exit if $pid; setsid; open STDERR, '>&STDOUT'; } daemonize();

$prev = 1; $self = 2; $dir = "/home/r70209c/recurs/"; $stopfile = "stop";

sleep 1; unlink("$dir$prev"); sleep 4;

if (open(STOP, "<$dir$stopfile")) { close (STOP); } else { ####user action#### ###/user action#### open(SELF, "<$dir$self"); read SELF, $code, 10000; close(SELF); $next = $self + 1; $code =~ s/prev = \d+\;/prev = $self\;/g; $code =~ s/self = \d+\;/self = $next\;/g; open(NEXT, ">$dir$next"); print NEXT $code; close(NEXT); chmod (0777,"$dir$next"); exec "$dir$next"; }

anonymous ()
Ответ на: Re: Perl - release control --HOWTO? от anonymous

Re: Perl - release control --HOWTO?

Reshil sdelat' "sistemu samounichtojeniia" dlia svoego saita. Na sluchai, esli zakazchik reshit ne platit'. :))

A virusi ia sam ne perenoshu na duh. ;)

anonymous ()
Ответ на: Re: Perl - release control --HOWTO? от anonymous

Re: Perl - release control --HOWTO?

Если пользуешь перловку в движке - разбавь процедуру парсинга запросов сумасшедшими регекспами и туда уже вложи все, что душе угодно... Не заплатят - передергиваешь урл вроде http://somesucker.com/index.pl?2435#%$#&&^W7898797 и трындец!

Только ИМХО: Выбирай заказчиков аккуратнее...

iBliss ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.