Signal an parent Prozess senden?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
gora
Beiträge: 58
Registriert: 30.04.2004 21:27:43

Signal an parent Prozess senden?

Beitrag von gora » 22.01.2008 11:31:06

Hallo, schon wieder ich. Aber ich habe nur Probleme und kenne mich nicht wirklich aus...

Ich führe ein Programm mit

Code: Alles auswählen

`./prog &`
in einem Perlscript aus.

Soweit ich es sehe, macht Perl daraus einen Aufruf wie

Code: Alles auswählen

sh -c ./prog &
was für die meisen Programme funktioniert, aber wehe "prog" läuft als Server in einer Endlosschleife. Dann blockiert das Perlscript, da die aufgerufene Shell (sh -c) zum Zombie wird, was ich mit "ps aux" herausgefunden habe. "prog" wird aber dennoch ausgeführt.

Nur wie kann ich den Zombie und das Blockieren des Perlscripts verhindern?

cosmac
Beiträge: 4576
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 22.01.2008 12:11:03

hi,
gora hat geschrieben:Signal an parent Prozess senden?

Code: Alles auswählen

kill -SIGNAL $PPID
gora hat geschrieben:"prog" läuft als Server in einer Endlosschleife ...
Nur wie kann ich den Zombie und das Blockieren des Perlscripts verhindern?
probier mal, im Server-Programm die Funktion daemon() aufzurufen.
Damit sollte es sauber als unabhängiger Prozess laufen und das
Script könnte weitermachen.
Beware of programmers who carry screwdrivers.

gora
Beiträge: 58
Registriert: 30.04.2004 21:27:43

Beitrag von gora » 22.01.2008 13:03:55

Hallo,

Ich habe nun als erstes in der main()-Funktion

Code: Alles auswählen

daemon(1, 1);
aufgerufen.
Leider blockiert er auch weiterhin das Perlscript :-(

Das einzige was sich geändert hat, ist der Zustand den "ps aux" anzeigt. Der hat sich für das "prog" von "S+" auf "Ss" geändert. Der Zustand von "sh -c" blieb trotzdem auf "Z+"

Antworten