Thread Problem mit fork und exec: geht nur mit: "exec myprogram &" (2 answers)
Opened by quetzalcoatl at 2004-05-18 15:59

quetzalcoatl
 2004-05-18 15:59
#82510 #82510
User since
2004-04-01
51 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich wundere mich grade über ein Problem mit fork und exec.

Ich möchte eigentlich eine kleine schleife, die überprüft ob ein bestimmes (oder mehrere) Programm läuft - wenn nicht soll er es starten.

Komischerweise geht das nur wenn ich die Programme im Hintergrund ausführe:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#!/usr/bin/perl -w 

@programs=("gkrellm", "xclock");

$SIG{'CHLD'} = sub { wait(); };

while (1) {

# running programs
foreach $p (@programs) {
if (system("pidof $p >/dev/null 2>&1") != 0) {
$retval=fork(); if ($retval == 0) { exec "$p &"; exit; }
}



}
sleep(1);
}

wenn ich das "&" hinter "exec "$p &" weglasse gehts nicht mehr - dann wartet mein Programm auf exec.

Weiß jemand warum?

Gruss,
quetzal

View full thread Problem mit fork und exec: geht nur mit: "exec myprogram &"