nohup Befehle an das Linux OS gehen nicht....

NetBull

Erfahrenes Mitglied
Hallo Leute,

ich verzweifel langsam an mir selbst.

Hab schon öfter mit nohup system befehle rausgejagt, welche im Hintergrund laufen sollen.

Aktuell: Muss ich eine Liste von Befehlen an das OS weitergeben, welche dann in eine Log-Datei reporten. Mit Ajax hole ich mir dann die Zeilen der Logdatei.

Leider geht das Nohup nicht. Folgender Befehl ist meine Test-Sequenz:
Code:
ping -c100 xhost >> /home/tmp/cmd.log 2>&1; echo "-READY-" >>  /home/tmp/cmd.log 2>&1;

Es soll eine Reihe von Ping Befehlen ausgeführt werden, im Hintergrund. Jeder soll in eine Log Datei schreiben, wenn der Ping Befehl fertig ist, dann soll in die Log Datei "-READY-" geschrieben werden.

Er macht es, über Konsole, sowie über PHP, aber erst nach dem letzten PING. Hab auch andere Befehle ausprobiert, wie find / x was ebenfalls lange läuft, nada, erst nach einer Verzögerung läuft das weiter.

Wer kann mir sagen was ich falsch mache..

cu s00n!
deAndro
 
Hi,

also dein Problem ist quasi, dass die PHP-Seite solange lädt, wie der Befehl läuft?
Oder dass in der Logdatei keine Ausgaben bis zum Ende des Befehls sind?

Gruß
BK
 
Ne, das Log läuft bis zum Ende, aber solange ist auch mein PHP blockiert. Eigentlich sollte das einfach weiter laufen und der der mit NOHUP abgesetzte Befehl unabhängig vom Browser weiter laufen, oder? Ich habs mit einem Find Befehl versucht, der mir zwar schneller vorkommt als auf der Konsole, aber der muss ja auch in den STDOUT schreiben, wenn ich den nicht umleite. Leite ich den auf der Konsole um und mache es da mit NOHUP ist es ebenfalls zeitverzögert. Beim PING Befehl wartet mein Skript definitiv auf das Ende.
 
Zurück