Schrift
[thread]8583[/thread]

Signalhandling: Signal wird nicht von perl interpretiert

Leser: 1


<< >> 6 Einträge, 1 Seite
Aleks
 2006-12-14 13:51
#72544 #72544
User since
2006-06-12
19 Artikel
BenutzerIn
[default_avatar]
Hallo Zusammen,
habe hier ein kleines Problem mit dem Signalhandling.

Wenn ich dem Perl Programm ein SIGINT schicke (über STRG-C oder kill -2), dann wird dies an ein externes Programm, dass zu diesem Zeitpunkt in einem system() call läuft, weiter gegeben.

Weiß jemand weshalb perl das Signal nicht selbst verarbeitet und wie ich perl ggf. dazu überreden kann? Witziger witzigerweise wird ein kill -10 behandelt..

Grüße,
Aleks
GwenDragon
 2006-12-14 15:21
#72545 #72545
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
BEGIN {
$SIG{'INT'} = "meineSigInt";
}

sub meineSigInt {
 # hier dein eigener Code;)
}


Weiteres z. B. unter http://www.cs.cf.ac.uk/Dave/PERL/node116.html\n\n

<!--EDIT|GwenDragon|1166102631-->
Aleks
 2006-12-18 13:07
#72546 #72546
User since
2006-06-12
19 Artikel
BenutzerIn
[default_avatar]
Hallo GwenDragon,
danke für den Hinweis, mein Problem ist aber ein anderes. Wie Signalhandler funktionieren ist mir bekannt. Ich wundere mich eben nur, dass ein SIGINT nicht vom perl interpretor interpretiert wird, sondern an das Programm (welches gerade in einem system() ausgeführt wird) weitergegeben wird. Wobei das nur in einer Schleife der Fall ist, in der halt immer wieder ein system() ausgeführt wird. Vor der besagten Schleifen läuft alles wie erwartet..

Das ganze läuft auf einem perl 5.6.1 / solaris.

Gruß,
Aleks
GwenDragon
 2006-12-18 16:54
#72547 #72547
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Wenn gerade durch einen sytem-Aufruf, also durch eine Shell, ein externes Programm läuft, dann erbt es die Signalhandler von Perl.
Aleks
 2006-12-18 17:36
#72548 #72548
User since
2006-06-12
19 Artikel
BenutzerIn
[default_avatar]
mmh, was meinst Du mit "dann erbt es die Signalhandler von Perl."?
Also den Signalhandler wird es sicherlich nicht erben. Meinst Du vielleicht das Signal als solches? Ich muss dazu erwähnen das in system() kein perl Programm ausgeführt wird, es ist ein kompiliertes binary &copy;. Das SIGINT wird auch definitiv vom binary abgearbeitet, dass sehe ich auf der Konsole.

Aleks
GwenDragon
 2006-12-18 18:05
#72549 #72549
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Ich habe mich nicht korrekt ausgedrückt. Ist ja kein Kindprozess.
<< >> 6 Einträge, 1 Seite



View all threads created 2006-12-14 13:51.