Thread Child Prozess beenden (36 answers)
Opened by Eng1958 at 2013-10-25 12:14

Eng1958
 2013-10-25 15:48
#171527 #171527
User since
2013-06-04
37 Artikel
BenutzerIn
[default_avatar]
Ich glaube wir haben aneinander vorbeigeredet:
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
43
44
45
46
47
48
49
50
if(@ARGV != 1)
{
        print "$CMD usage: ScriptDaemon.pl Script \n";
        exit 0;
}
my $scriptname = $ARGV[0];
local $SIG{CHLD} = 'IGNORE';
local $SIG{TERM} = 'schliessen';
while (1)
{
        if ($pid = fork)
        {
                #Hier ist der Parent prozeß
                print "Parentprozess\n";
                while(1)
                {
                        print "$$";
                        if (kill 0 => $pid)
                        {
                                print "child is alive...\n";
                        }
                        else
                        {
                                print "child is dead...\n";
                                last;
                        }
                        sleep 1;
                }
                
                print "ende des ganzen\n";
        }
        elsif(defined $pid)
        {
                # $pid ist hier null falls definiert
                # hier gibt es den child prozess
                # pid des parent über getppid verfügbar
                print "Kindprozess...\n";
                exec($scriptname);
                print "Verlasse jetzt Kindprozess\n";
        }
}


sub schliessen
{
        my $befehl = "kill -15 $pid";
        my $result = `$befehl`;
        print "Beenden";
        exit 0;
}


Der kill Befehl musste abgefangen werden um beide zu beenden.

View full thread Child Prozess beenden