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

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

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

HTH

Onanim
()
Ответ на: комментарий от Onanim

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
()
Ответ на: комментарий от anonymous

ФБР ищет тебя, давить вирусописателей!

anonymous
()
Ответ на: комментарий от anonymous

> 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
()

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

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

aton
()
Ответ на: комментарий от aton

#!/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
()
Ответ на: комментарий от anonymous

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

A virusi ia sam ne perenoshu na duh. ;)

anonymous
()
Ответ на: комментарий от aton

na temu - "poimat' za hvost" - u zakazchika moego est' bolee menee riuhalistii chainik - udaliat' faili po FTP on umeet, vot podumal - kak vseh Abmanut'... (: (C)

anonymous
()
Ответ на: комментарий от anonymous

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

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

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