Ist es möglich, den übergeordneten Prozess eines Prozesses zu ändern? Wenn ja wie
Beispielsweise,
Wie gelingt
screen
es, einescreen
Sitzung und die darin ausgeführten Prozesse an verschiedene Shell-Prozesse anzuhängen ? Gibt es eine Änderung des übergeordneten Prozesses?Ich habe offenbar von anderen Methoden zur Änderung des Shell-Prozesses gehört, in denen ein Programm ausgeführt wird, kann mich aber nicht erinnern. Gibt es auch einen Wechsel des Elternprozesses des Programms?
Ich dachte, dass
disown
ein Prozess den übergeordneten Prozess des Prozesses ändert, einfach weil der Name diesdisown
impliziert. Aber ich fand es nicht wahr.Der Emacs-Client kann auf einer anderen Terminal-Registerkarte eine Verbindung zum Emacs-Server herstellen. Gibt es eine Änderung des übergeordneten Prozesses?
getppid(2)
, ein Systemaufruf und Systemaufrufe werden vom Kernel behandelt. Ein Programm könnte verwirrt werden, indem dieser Aufruf ausgegeben, der Wert gespeichert und dann verwendet wird, nachdem sich seine Herkunft geändert hat. Hier besteht die Möglichkeit einer Rennbedingung.
disown
Entfernt einfach ein bestimmtes untergeordnetes Element aus der internen Liste der untergeordneten Prozesse einer Shell. Die PPID des Kindes bleibt die der Shell. Die Shell hat vergessen, dass es jemals dieses Kind angefangen hat, aber der Kernel erinnert sich.