Mailinglisten-Archive |
Hab letztens ein kleines script gebastelt was über den browser/webserver nen gameserver startet, ich bin mir nicht mehr sicher warum ich dafür einen sudo in den shellaufruf rein genommen habe, aber kanns sein das der user www-data keine hintergrundprozesse ausführen darf? ... bin mir da nicht mehr so sicher ... allerdings habe ich auch den gameserver im screen ausgeführ, was natürlich wieder ne andere geschichte ist aber vielleicht wäre das auch eine möglichkeit für dich, einen Benutzer anlegen, dem www-data in die sudoers liste mit aufnehmen und ihn aber nur auf diesen einen benutzer beschränken, dort dann deine prozesse in jeweils nem seperaten screen ausführen lassen ... problem daran wird vielleicht sein, du musst den screen wieder beenden, oder beendet der sich dann selber wenn der prozess fertig ist (wer weiß was darüber, liste?) mein php script sieht jedenfalls so aus: <?php echo "Stoping the Server<br />"; exec('sudo -u srcds screen -S rpgserver -X quit'); $temp = "srcds_run -game cstrike +map de_dust2 -tickrate 100 -port 28015 +maxplayers 20 -autoupdate"; echo "Starting the Server"; exec('cd /home/srcds/cssrpg/; sudo -u srcds screen -A -m -d -S rpgserver /home/srcds/cssrpg/'.$temp); der entsprechende eintrag in der sudoers www-data ALL=(srcds) NOPASSWD: ALL der benutzer srcds ist an sich aber auch wieder extrem eingeschränkt so das da nicht viel passieren falls jemand mal auf dumme ideen kommt :-) hoffe das hilft irgendwie Christian Knorr schrieb: > Am Mittwoch 21 Januar 2009 17:12:41 schrieb Michael Dunkel: > >> Hi, >> > Hallo Michael, > > >> du könntest den befehl im hintergrund ausführen indem du ein "&" ans >> ende setzt: >> >> exec("ffmpeg -i eingang.mpg ausgang.mpg &") >> >> z.b. per ajax kannst du dann ein weiteres script ansteuern was dir mit "ps >> -aux | grep ffmpeg -i eingang.mpg ausgang.mpg" anzeigen kann ob der prozess >> fertig ist oder nicht >> >> wenn du nun noch die ausgaben des prozesses haben willst kannst du auch mit >> nohup die ausgaben in eine datei schreiben lassen und diese dann mit ajax >> und nem script im 5 sekundentakt auslesen und anzeigen oder sowas >> > Funktioniert leider nicht. Egal ob mit "&" am Ende, und/oder "nohup" am > Anfang; der Befehl wird immer gekillt wenn ich die (PHP-)Seite verlasse, auf > der der Befehl ausgeführt wurde. > > Das mit der Überwachung habe ich mittlerweile gelöst, wenn auch ohne ajax. > Nur ist wie gesagt irgendwann der Prozess weg. > > Weitere Ideen? > > >> Grüße >> Micha >> > Chris..... > > -- Michael Dunkel | Web Development | ipoque Mozartstr. 3 | 04107 Leipzig | Germany phone + 49-341 - 59 40 3 - 0 | mobile +49-160 72 49 124 fax +49-341 59 40 3 - 019 | web www.ipoque.com trade register Amtsgericht Leipzig HRB21462 Gesellschaft mit beschränkter Haftung (GmbH) board Klaus Mochalski, Hendrik Schulze, Dr. Frank Stummer ISS World MEA, Dubai, 24-26 February 2009 ipoque Executive Blog at http://blog.ipoque.com
php::bar PHP Wiki - Listenarchive