sigaction und fork, execvp

“Vererbung” der Signal-Handler?

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

sigaction und fork, execvp
Wenn ich in meiner Shell eine Funktion als Handler beispielsweise fuer SIGCHLD einrichte, muss ich dann nach einem fork selbst dafür sorgen, dass die Kindprozesse wieder den Standard-Handler verwenden, oder wird der bei execvp automatisch zurückgesetzt?

Nach meinen Experimenten ist es so, dass vordefinierte Handler wie SIG_IGN nach dem execvp übernommen werden, statt eigenen Funktionen aber wieder die Standardhandler eingesetzt werden. Das wäre ja auch sinnvoll, da meine eigene Funktion nach dem execvp ja nicht mehr existiert.

Weiß jemand, ob das wirklich so abläuft bzw. wie es wirklich abläuft? Irgendwie fühlt sich für diese Frage auch keine der entsprechenden manpages zuständig. :wink:


Dein Gedankengang ist vollkommen richtig. Da beim exec das Textsegment ersetzt wird existieren die Handler danach nicht mehr. Ein SIG_IGN/SIG_DFL wird dagegen vererbt.


Danke für die schnelle Antwort! Das erspart mir dann einige Änderungen. :slight_smile: