ERLEDIGT
JA
JA
ANTWORTEN
5
5
ZUGRIFFE
655
655
EMPFEHLEN
-
11.09.11 18:05 #1
- Registriert seit
- Aug 2011
- Beiträge
- 8
Hallo Liebe Community, ich habe folgendes problem.
ich muss einen shoutcastserver per php starten und stoppen können.
mein phpscript lautet wie folgt:
das ist vorerst nur das stoppen, bis ich rausgefunden habe wie es richtig gehtPHP-Code:<?
$out = array();
exec('/shoutcast/8015/script stop', $out);
print_r($out);
?>
der inhalt der "script" datei:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
#!/bin/bash # Startup script for the SHOUTcasting Server # # chkconfig: - 85 15 # Source networking configuration. #. /etc/sysconfig/network # Check that networking is up. This line may cause an error on incompatible # distributions. Remove it if necessary. Also remove if the startup always # fails for no apparent reason. [[ ${NETWORKING} = "no" ]] && exit 0 stop() { echo "Killing old shoutcast servers." codpid=$(ps ax | grep sc_serv8015 | awk '{print $1}') #for oldpid in `ps -A | grep sc_serv8015 | cut -c 0-6`; do kill -9 $codpid #done rm -f /shoutcast/8015/shoutcast.pid } start() { servcount=`expr 0` for cfile in `ls /shoutcast/8015/`; do echo -n $cfile echo -n " -> " grep ^RelayServer /etc/shoutcast/$cfile # This is the line where we actually run the shoutcast program! #sudo -u nobody /shoutcast/8015/sc_serv8015 > /dev/null & /shoutcast/8015/sc_serv8015 > /dev/null & let servcount=servcount+1 done #Create the pid file... ps -A | grep sc_serv8015 | cut -c 0-6 > /shoutcast/8015/shoutcast.pid #Done now! echo "Started $servcount servers." } case "$1" in start) if [[ ! -e /shoutcast/8015/shoutcast.pid ]] then start $2 if [[ -e /shoutcast/8015/shoutcast.pid ]] then echo "Startup [SUCCESS]" fi else echo "Startup [FAILED]" fi ;; restart) stop $2 sleep 4 start $2 if [[ -e /shoutcast/8015/shoutcast.pid ]] then echo "Startup [SUCCESS]" fi ;; stop) if [[ -e /shoutcast/8015/shoutcast.pid ]] then stop $2 echo "Shoutcast shutdown [SUCCESS]" else echo "There are no registered shoutcast servers running right now. Attempting to kill anyways." stop $2 fi ;; *) echo "Usage: shoutcast (start|stop|restart)" ;; esac
soweit so gut.
wenn ich mein phpscript aufrufe sagt es mir zwar Shoutcast stopping [SUCCESS], tut es aber nicht.
kann mir hier jemand unter die arme greifen? bin langsam am verzweifeln ._.
-
11.09.11 23:56 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hi,
könnte sein, dass du das Script mit erhöhten Rechten ausführen musst, also dass die Rechte des Webservers nicht ausreichen.
Schon mal mit sudo versucht?
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"
-
12.09.11 00:04 #3
- Registriert seit
- Aug 2011
- Beiträge
- 8
schon probiert, keine wirkung.
kann ich php sagen das es sich als ein bestimmter user in die shell einloggen soll?
-
Hallo Aileen,
ich kenne zumindest keinen PHP-Befehl dafür,
aber
Davon, dass du das Passwort des anderen Benutzers kennst gehe ich mal aus, nur wüsste ich nicht, wie man das jetzt aus PHP heraus der Shell mittelt.PHP-Code:exec('su BENUTZERNAME -c /shoutcast/8015/script stop', $out);
Gruß
-
Hi,
entweder das PHP-Script die Rechte geben oder man müsste in der /etc/sudoers wohl eine Rechtezeile einstellen.
Code :1
%wheel ALL=(ALL) NOPASSWD: ALL
Is natürlich eine sehr nette Rechtevergabe (in beiden Fällen), sodass der 'Cmnd_Alias'-Parameter dort eher was sein sollte.
Aber wenn er's auf der shell schon nicht macht, dann wird's wahrscheinlich noch woanders liegen.
Schonmal den debug-Modus aktiviert?
Gruß
deeGeändert von dee0x400 (12.09.11 um 12:13 Uhr)
-
12.09.11 16:18 #6
- Registriert seit
- Aug 2011
- Beiträge
- 8
hab den fehler gefunden ._.
ich doofe nuss hatte die streams vorher per root in einer shell gestartet..
php kann die nunmal nicht beenden weil root > www-data
funktioniert ohne problemePHP-Code:$shell = shell_exec("cd /shoutcast/8015/; ./script start");
Ähnliche Themen
-
Debian Script ab einem bestimmten Abschnitt weitermachen
Von schlawiner im Forum Linux & UnixAntworten: 23Letzter Beitrag: 01.10.10, 13:17 -
Debian: wie kann ich Jboss als dienst starten?
Von jackisback im Forum Linux & UnixAntworten: 5Letzter Beitrag: 28.07.08, 14:52 -
bash - Script aus Script starten -> Aufgehangen
Von ElDoc im Forum Linux & UnixAntworten: 0Letzter Beitrag: 06.05.08, 11:39 -
PHP Script am Server Debian laufen lassen
Von pchilfe im Forum Linux & UnixAntworten: 2Letzter Beitrag: 02.10.07, 01:56 -
GRUB Debian 4.0 - System starten
Von KappRa im Forum Linux & UnixAntworten: 0Letzter Beitrag: 25.08.07, 14:17





Zitieren

Login





