Ich habe einen Daemon Prozess welchen ich per SIGTERM beende um ihn dann neu zu starten. Nach dem ich SIGTERM gesendet habe möchte ich warten bis der Prozess auch wirklich beendet wurde. Mittels os.waitpid kann ich jedoch nur auf Child Prozesse warten. Als fix verwende ich derzeit Polling aber das gefällt mir überhaupt nicht.
Kennt jemand von euch eine Lösung?
PS: Das ganze muss nur auf *nix Systemen funktionieren.
Auf terminierung von nicht child Prozess warten
Ich hatte mal genau das gleiche Problem. Mein Lösungsansatz war, mit inotify auf Veränderungen (genauer gesagt, Löschungen) im /proc Verzeichnis zu warten. Hat aber nicht geklappt, da der Kernel für PIDs in /proc keine IN_CREATE und IN_DELETE Ereignisse auslöst...veers hat geschrieben:Ich habe einen Daemon Prozess welchen ich per SIGTERM beende um ihn dann neu zu starten. Nach dem ich SIGTERM gesendet habe möchte ich warten bis der Prozess auch wirklich beendet wurde. Mittels os.waitpid kann ich jedoch nur auf Child Prozesse warten. Als fix verwende ich derzeit Polling aber das gefällt mir überhaupt nicht.
Kennt jemand von euch eine Lösung?
PS: Das ganze muss nur auf *nix Systemen funktionieren.
Mein Glück war, dass der Prozess im in etwa die selbe Zeit zum Beenden gebraucht hat, und sich somit time.sleep anbot. An einer besseren Lösung wäre ich aber dennoch interessiert...