PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit PHP eine Linux-Anwendung neu starten?



jacky2k
25.12.04, 19:09
Hallo!
Ich möchte mir gerne ein Webinterface für Counterstrike und andere Server bauen. Dafür muss ich aber eine Funktion haben, mit der ich den Server neustarten kann.
Gibt es da eine Möglichkeit?
Gibt doch sowas, mit dem man Sachen überprüfen kann und wenn sie off sind, werden sie automatisch neu gestartet, heißt das nicht CornJob oder so?
Geht das vielleicht damit?

MfG

Jacky2k

flo#bre
25.12.04, 22:19
schreib dir ein shell-script, welches du dann mit den entsprechenden rechten mit php ausführen kannst

jacky2k
25.12.04, 23:05
Aha, und wie mache ich das mit PHP?

flo#bre
25.12.04, 23:33
system -- Führt ein externes Programm aus und zeigt dessen Ausgabe an.
http://de2.php.net/manual/de/function.system.php

exec -- Führt ein externes Programm aus
http://de2.php.net/manual/de/function.exec.php

jacky2k
25.12.04, 23:56
Boa mist!
Ich verstehe garnichts... hast du das zufällig verstanden?
Kannst mir das vielleicht mal erklären, weil da is nirgends mal die Syntax erklärt und die Beispiele sind alle total unterschiedlich. Ich sehe da keinen Zusammenhang.

Also, ich habe einen Prozess, den ich im Hintergrund mittels
# screen -A -m -d -S [name] [anwendung]
gestartet habe.
So, wie kann ich den nun damit richtig runterfahren?
Also mit
# screen -r [name]
rein gehen und dann
# quit
nacher wieder starten...

Verstanden?

robotangel
26.12.04, 00:02
Öhm, exec("befehl"); system("befehl");

Da gibts nich viel Syntax :)

jacky2k
26.12.04, 00:12
OK...
nachdem ich da fast alles durchgelsen habe, hab ich es auch verstenden...galub ich..
aber noch was:
als welcher Benutzer wird das ausgeführt? Und wie kann ich den Benutzer ändern? Wenn ich z.B. das System neu booten will, muss ich ja ROOT sein...
Und das sind im Grunde shell-scripte, oder?
Also lönnte ich da jetzt auch einfach ein 'ls' oder so machen?

MuffiXXL
26.12.04, 03:11
Oder du gibst nem bestimmten Unser das recht neuzustarten

jacky2k
26.12.04, 14:01
Wohl eher nicht...
Das mit dem Neustarten war ja nur ein Beispielt...
Wie bekomme ich es nun hin, eine Anwendung, so wie von mir beschrieben zu beenden???

MiGo
29.12.04, 09:51
<?php

exec ("killall -15 couterstrike-server");
// oder wie auch immer der Prozess eines CS-Servers heisst :)
?>

Wahrscheinlich wirst du an den Rechten für kill rumspielen müssen, damit der Benutzer, unter dem der Webserver läuft (solange es nicht root ist :evil: ), auch das Recht hat, prozesse zu killen. (Das sollte sich in der sudoers-Datei einstellen lasses, zu erreichen via "visudo").
Sicherer ist es allerdings, ein Script zu schreiben, das den Server killt, und die Rechte nur für dieses Script zu vergeben.

jacky2k
30.12.04, 14:35
Mhhhhh
Also...
ich teste das mal..
aber ich hab mal ein touch gemacht... das geht nicht!