|
Тема
|
скрипт стартира друг скрипт
|
|
Автор | just_one (Нерегистриран) |
Публикувано | 24.09.04 11:51 |
|
Здравейте. Имам следният проблем: имам 2 скрипта, единият от които трябва да стартира 2-я, но в същото време да си продължи работата, независимо от 2-я. Ако някой има идея нека я сподели.
Благодаря.
| |
Тема
|
Re: скрипт стартира друг скрипт
[re: just_one]
|
|
Автор |
sdg (shebang addict) |
Публикувано | 24.09.04 12:11 |
|
perldoc -f fork
perldoc -f exec
Или, вкратце, фрагмент от първия скрипт:
my $pid = fork();
if (0 == $pid) # child
{
exec("script2.pl","arg0","arg1") or die "Could not exec script2: $!";
}
# child ends, script2 executed
unless(defined($pid)) { print STDERR "Could not fork: $!"; }
RTFM!
--sdg
| |
Тема
|
Re: скрипт стартира друг скрипт
[re: sdg]
|
|
Автор | just_one (Нерегистриран) |
Публикувано | 24.09.04 12:25 |
|
Необходимо е 1-ят скрипт да продължи да работи без да изчаква 2-я да свърши.
| |
|
system() ?
| |
Тема
|
Re: скрипт стартира друг скрипт
[re: just_one]
|
|
Автор |
sdg (shebang addict) |
Публикувано | 24.09.04 20:29 |
|
Къде в примера някой чака някого?
RTFM!
--sdg
| |
Тема
|
Re: скрипт стартира друг скрипт
[re: sdg]
|
|
Автор | just_one (Нерегистриран) |
Публикувано | 26.09.04 18:25 |
|
Е как къде? И system и exec очакват някакъв резултат, но 2-я скрипт може да се забави, а това не трябва да влияе на изпълнението на 1-ят.
| |
Тема
|
Re: скрипт стартира друг скрипт
[re: just_one]
|
|
Автор |
vfork () |
Публикувано | 26.09.04 23:17 |
|
Moze bi imash predvid (sdg e napisal (makar i sus syntax err, i grozno)) "otdelqne" na child ot parent process:
###start
use POSIX;
$|++; #for the test
$pid = fork;
die "can't fork: $!" unless defined$pid;
if($pid == 0){
POSIX::setsid or die "can't start a new session: $!";
exec("second_script"); #we do not want a return value
}
#here goes the rest of the first_script
print ++$c, "\n" and sleep 1 for 1..3;
###end
makar che tova bi moglo da vurvi samo ako ne minesh prez:
$^O =~ /win32/ #t.e. pomiqta
| |
Тема
|
Re: скрипт стартира друг скрипт
[re: vfork]
|
|
Автор |
sdg (shebang addict) |
Публикувано | 27.09.04 11:52 |
|
Е, чак пък грозно
Ако трябва да бъдем съвсем прецизни, някъде преди fork() е добре да има и $SIG{'CHLD'} = 'IGNORE'. Важното беше да се прочете документацията, но явно не се е случило...
RTFM!
--sdg
| |
Тема
|
Drug wariant
[re: just_one]
|
|
Автор | krumch (Нерегистриран) |
Публикувано | 27.09.04 13:58 |
|
script1.pl
# Redowe predi
...
system("script2.pl param1 param2 param3 &");
# Redowe sled
...
W tazi situacia script2.pl triabwa da e izpalnim fail po wsitchki prawila na OS-a. Puskal sam po 50 instancii na script2 ot rabotesht script1 - sprawia se bez problem. Ne si spomniam da sam go testwal na WIN*, no sigurno shte warvi...
| |
Тема
|
Re: скрипт стартира друг скрипт
[re: sdg]
|
|
Автор |
vfork () |
Публикувано | 27.09.04 15:08 |
|
E da no ako se cheteshe dokumentaciqta nqmashe da ima koi kakvo da pita
| |
|
|
|
|