Thread open generiert 2 prozesse (7 answers)
Opened by subsys at 2005-06-30 17:55

subsys
 2005-06-30 17:55
#55865 #55865
User since
2005-03-08
27 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe ein kleines Problem auf welches ich bis jetzt keine Antwort gefunden habe.
Und zwar starte ich ein Programm mittels open.
Nun werden aber 2 Prozesse erstellt:

Code: (dl )
1
2
root       806  0.0  0.1   2324  1100 pts/2    S    14:49   0:00 sh -c /usr/bin/unace2 x '/data/A156/entpackt/skypdfpro_mf-installer-133-en-20050630.zip-ent/setup.exe-ent/setup.exe' &> /dev/null
root 807 103 0.0 4892 248 pts/2 S 14:49 0:09 /usr/bin/unace2 x /data/A156/entpackt/skypdfpro_mf-installer-133-en-20050630.zip-ent/setup.exe-ent/setup.exe


Eine Shell und einmal das richtige Programm.
Leider benötige ich die PID im Programm, was ja normalerweise funktionieren würde. Ich bekomme aber leider nur die PID vom Shell Prozess zurück. Wenn ich nun diesen killen möchte läuft mein richtiger unace2 Prozess weiterhin.

Die Funktion mit der ich das externe Programm starte sieht folgendermassen aus:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Funktion zum starten eines Entpacker Programms
sub start_prog
{
my $prog = $_[0];
my $text = '';
my @return;

$pid = open(FH,"$prog |") or die $!;
while (<FH>)
{
$text .= $_;
}
close (FH);
$pid = 0;
$return[0] = $?;
$return[1] = $text;

return @return;
}


Vielleicht hat jemand eine Idee? Mit system() habe ich es auch schon getestet. Wenn sich hier mein Perlskript beendet, bleibt hier der unace2 Prozess auch erhalten.

View full thread open generiert 2 prozesse