%20Programm%20im%20Hintergrund%20ausf%C3%BChren.png)
Ich versuche, ein PHP-Skript im Hintergrund auf meinem Linux-Server über SSH (Putty) auszuführen, aber es funktioniert nicht.
Der Befehl, den ich im Hintergrund ausführen möchte, ist:
php buildscript/build_css.php
alsroot@FIG-VMSAM:/var/www/wem#
Ich habe dies versucht und bekomme nur dies und es funktioniert nicht (erstellen Sie mein CSS nicht für mich).
root@FIG-VMSAM:/var/www/wem# php buildscript/build_css.php &
[1] 2274
[1]+ Stopped php buildscript/build_css.php
Ich habe auch versucht, den Befehl normal zu starten und ihn anschließend in den Hintergrund zu stellen, <Ctrl>+z
aber das funktioniert auch nicht.
Als Hintergrund in meinem PHP-Skript verwende ich system()
und rufestylus
http://learnboost.github.com/stylus/
und inotifywait
ob das helfen soll?
Weiß jemand, warum das bei mir nicht funktioniert?
Antwort1
Eine andere schnelle Antwort ist ... vorausgesetzt, dass das Programm wirklich keine Benutzereingabe benötigt:
php buildscript/build_css.php </dev/null &
Der Grund für das Anhalten liegt darin, dass das Programm stdin
aus irgendeinem Grund geöffnet wird, obwohl möglicherweise keine Eingabe erforderlich ist.
Antwort2
Wäre es möglich, das Skript auf einem separaten Bildschirm auszuführen?
sudo apt-get install screen
Verwenden Sie dann screen -S screenname
, wobei „Bildschirmname“ ein Name ist, den Sie der Bildschirmsitzung geben.
Sobald Sie auf dem Bildschirm sind, können Sie Ihren Befehl eingeben.php buildscript/build_css.php
Um die Sitzung zu verlassen, verwenden Sie ctrl+ a+ d.
Um zur Sitzung zurückzukehren, verwenden Siescreen -r screenname
Keine Sorge, wenn Sie die Sitzung verlassen, wird der Befehl im Hintergrund weiter ausgeführt.