tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
317
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    deAndro deAndro ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    87
    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 :
    1
    
    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
     

  2. #2
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    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
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  3. #3
    deAndro deAndro ist offline Mitglied Silber
    Registriert seit
    Jul 2010
    Beiträge
    87
    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.
     

  4. #4
    Kyôya Kyôya ist offline Mitglied Silber
    Registriert seit
    Nov 2011
    Ort
    Würzburg
    Beiträge
    62
    Hi,

    schau dir mal die Funktion proc_open an. Sie ermöglicht es dir die Ausgaben des Kind-Prozesses Häppchenweise abzuholen.

    Gruß Kyoya Stefan
     
    Oracle Certified MySQL 5 Professional Developer
    Zend Certified PHP 5.3 Engineer

    Vorträge, Webinare, etc im Mayflower - Blog

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 31.01.11, 12:00
  2. Linux Shell Befehle mit PHP ausführen
    Von hoctar im Forum PHP
    Antworten: 7
    Letzter Beitrag: 30.09.08, 07:44
  3. Antworten: 4
    Letzter Beitrag: 08.12.06, 18:07
  4. Antworten: 7
    Letzter Beitrag: 26.09.04, 21:29
  5. USB Stick, Maus und DVD-Laufw. gehen nicht bei Linux
    Von wieseline im Forum Linux & Unix
    Antworten: 5
    Letzter Beitrag: 13.04.04, 08:30