Thread Skript nach Programmaufruf fortsetzen (12 answers)
Opened by IceRage at 2008-09-16 02:13

IceRage
 2008-09-16 02:13
#114689 #114689
User since
2008-09-07
93 Artikel
BenutzerIn
[default_avatar]
Hallo allerseits,

angeblich soll ja system() im Gegensatz zu exec(), dass Skript nicht beenden. Vielleicht hab ich ja was falsch gemacht, aber bei mir geht das irgendwie nicht. Ob ich nun system() oder exec() aufrufe, dass Skript läuft erst dann weiter, wenn das Aufgerufene Programm (Firefox), wieder geschlossen wurde (alles unter Debian übrigens).

Folgendes habe ich darauf hin ausprobiert:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
while (1) {
        pipe(READER,WRITER);
        READER->autoflush(1);
        WRITER->autoflush(1);

        my $pid = fork();

        if($pid == 0){
                # Child-Prozess
        
                close READER;
                print WRITER $$;
                print "Ich bin das Kind:  ",$$,"\n";
                my $output = system("/usr/bin/firefox file:///home/uname/log/testseite.html");
                # print $output;                
                exit(0);
        }
        else{
                # Parent-Prozess
                print "Ich bin der Vater: ",$$,"\n";
                wait();

                close WRITER;

                my $i = 0;

                my @line = <READER>;
                while (1) {
                        print "$i Ich bin der Vater: ",$$,"\n";
                        print "$i Und mein Kind ist: ",$line[0],"\n";
                        $i++;
                        sleep(1);
                        if ($i >= 5) {
                                $i = 0;
                                exit(0);
                                # Child killen !
                        }
                }
        }
        print "besser dann doch abbrechen.";
        sleep(1);
}



Das Sktipt soll Folgendes tun:

- 1. Browser öffnen
- 2. In die while schleife (Parent Prozess) gehen
- 3. Nach 20 Schleifendurchläufen (Parent Prozess) den Browser, an Hand der übermittelten PID schließen.
- 4. Dann wieder das Selbe ... 1.

Ich bekomm das nicht hin. Kann mir dabei bitte jemand helfen?

Gruß, IceRage

View full thread Skript nach Programmaufruf fortsetzen