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.
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.
Tags und Links unix