PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programme per PHP starten und beenden


Golf-Onkel
21.06.2004, 17:47:36
Hallo.

Folgendes Problem:
Ich möchte gerne einen Shoutcast Radio Server per Weboberfläche starten und beenden können. Dabei ist es wichtig das der Shoutcast Server unter einem eigenen Benutzer gestartet wird und kein Shell Zugriff für diesen Benutzer erlaubt ist.

Habe leider überhaupt keinen Ansatz wie ich das hinbekommen könnte.

Liebe Grüße,
Jan

bazubi
21.06.2004, 18:53:02
Mit system(), passthru(), oder exec() kannst Du Programme durch PHP starten. Ob das auch mit einem anderen Benutzer hinzubekommen ist, weiß ich nicht.

Golf-Onkel
21.06.2004, 19:42:40
Kannst du mir das noch ein wenig genauer erläutern?

Finde leider nichts über exec()

[EDIT]
Ok funktioniert mit exec() und mit system(), allerdings startet die Anwendung (In meinem Fall ein Shoutcast Server) unter dem Benutzer wwwrun.

Eventuell bekomme ich es hin das PHP ein Shellscript aufruft, welches dann den Server mit dem korrekten Benutzer startet.

feuervogel
21.06.2004, 22:42:51
zu

>Finde leider nichts über exec()

http://www.php.net/exec

einfach mal den funktionsnamen an www.php.net dran hängen, dann findest du sicher was;-)

Bigdaddy
22.06.2004, 16:44:48
kann ich damit auch Programme starten, die sonst nur über SSH erreichbar sind? Geht das irgendwie mit fopen, dass man so (wie bei IRC) ne verbindung aufbaut.

Golf-Onkel
22.06.2004, 17:48:56
Also im Grunde kannst du jedes Programm starten welches du mit dem Benutzer wwwrun öffnen kannst.
Unter Windows weiß ich leider überhaupt nicht wie das klappt.

Habe mir jetzt ein Shell Script angepasst, welches über Screen das Programm startet. Das macht es einfacher später das Programm wieder zu beenden.

Bigdaddy
23.06.2004, 12:33:31
hast du mal ein beispiel eines solchen shell-scripts? Weil ich muss die dinger auch wieder beenden können, sprich sonst muss ich da ja irgendwie die PID suchen und weiss net wie ;) ps -aux kann ich ja kaum aufrufen :D

Golf-Onkel
23.06.2004, 15:59:54
Hier dieses Skript zum starten und beenden von einem Half-Life Gameserver habe ich mir angepasst.
http://www.counter-strike.de/hlinside/server/hlds

Einfach mal reinschauen ist eigentlich ganz gut zu überschauen.
Später kannst du dann mit Php

system ("/pfad/zu/dem/shell/script/hlds start");

den Server starten und mit [...] hlds stop wieder beenden.

Bigdaddy
24.06.2004, 21:33:44
die config da is aber blöd, die schreibt die pids net auf, dann kanste so jedes programm nur einmal starten, rsp. schon mehrmals starten, aber nur einmal beenden, und zwar alle gleichzeitig.

Golf-Onkel
25.06.2004, 17:05:47
Das stimmt wohl.

Man könnte sich auch, wenn man nicht so gut im Shell Scripten ist, das apachectl Script anpassen. Das benutzt nämlich die PID.

Bigdaddy
25.06.2004, 21:49:31
ich find schon einen der shell scripten kann ;) aber danke für den tipp

Golf-Onkel
25.06.2004, 22:36:53
Original geschrieben von Bigdaddy
ich find schon einen der shell scripten kann ;) aber danke für den tipp

Ich wollte damit eigentlich zum Ausdruck bringen, das wenn man nicht besonders gut selber scripten kann, dann sollte man sich das vorhande Script kopieren und anpassen.

Ist einfacher als ein komplett neues zu schreiben... :)