Verhalten von Eltern und Kind für einen Signalhandler

8

Ein Prozess hat einen 'fork' Aufruf, nachdem ein Signal-Handler [für SIGINT] registriert wurde. Was passiert, wenn SIGINT über die Befehlszeile gesendet wird? ob Elternteil oder Kind oder beides verlassen wird? Eltern und Kind laufen beide in unendlichen While-Schleifen.

    
Puneet 13.02.2013, 11:33
quelle

1 Antwort

12

Wenn Sie fork (ohne weitere exec* ) nach der Registrierung eines Signal-Handlers verwenden, wird derselbe Signal-Handler in den Eltern- und Kind-Prozessen verwendet. Das heißt, wenn Sie in Ihrem exit -Handler etwas anderes als SIGINT ausführen, werden weder das übergeordnete noch das untergeordnete Element beendet (wie SIGINT gesendet wurde, ist hier irrelevant).

Wenn Sie ein SIGINT vom Terminal ( vintr -Zeichen, normalerweise Ctrl+C ) meinen: Es wird von Prozessen empfangen, die das Terminal als kontrollierendes Terminal. Das heißt, wenn Sie nicht child oder elter vom Control-Terminal trennen, reagieren beide auf Ctrl+C , indem Sie Ihren SIGINT -Handler aufrufen.

    
Anton Kovalenko 13.02.2013 11:46
quelle

Tags und Links