Wie XBMC starten/stoppen

  • Hallo ich schreibe mir gerade eine Verwaltungsoberfläche für meinen Pi und würde gern XBMC starten/stoppen lassen, jedoch wehrt er sich dagegen.


    Ich nutze Raspbmc und da ist die einzige Möglichkeit XBMC zu starten dieser:


    Code
    service xbmc start/stop



    um service Befehle auszuführen muss man root sein, deshalb hab ich mit visudo bereits die sudoers bearbeitet.. leider ohne Erfolg.


    zum Testen hab ich mal :

    Code
    www-data ALL=NOPASSWD:ALL


    eingetragen, jedoch gehten diese service Befehle immer noch nicht.



    Kann mir jemand weiterhelfen wie das ganze klappen könnte?




    Hier die Lösung, falls es noch jemand braucht:


    Ein kleines Shell-Script erstellen zB unter: [font="Verdana, Arial, sans-serif"]/home/pi/service.xbmc.sh mit dem Inhalt:[/font]

    Bash
    #!/bin/bash
    /sbin/initctl $1 xbmc



    Mit dem Befehl visudo die sudoers bearbeiten und folgendes unten eintragen:

    Code
    www-data ALL=(root) NOPASSWD: /home/pi/service.xbmc.sh


    und nun kann man mit php folgenden Code nutzen:

    Code
    exec('sudo /home/pi/service.xbmc.sh stop');
    exec('sudo /home/pi/service.xbmc.sh start');


    quelle: http://forum.stmlabs.com/showthread.php?tid=12473

    Edited once, last by Puseidr ().

  • hmm vielleicht is das auch der falsche Bereich, vielleicht ist Software Allgemein besser?

  • hat niemand eine idee?

  • Funktionieren die service-Befehle wenn du sie manuell mit sudo im Terminal ausführst? Womit führst du die Befehle dann vom Webinterface aus? Python? PHP?


    Dem www-data-Benutzer sudo-Rechte zu geben ist schon eine dicke Sicherheitslücke, würde ich nicht machen wenn es sich vermeiden lässt.


    edit: Hab grade auch noch das gefunden, hab nur leider grade kein Raspbmc laufen:

    Quote

    Stop XBMC with
    sudo initctl stop xbmc


    Restart XBMC with
    sudo initctl start xbmc


    edit2: Ohne sudo wird es allerdings sehr schwierig, könnte es mir nur so vorstellen dass unter einem anderen Benutzer noch ein Skript läuft dass das dann gegebenenfalls ausführt. Ist aber wohl etwas zu viel Aufwand nur um den kleinen Pi abzusichern.

  • die service-Befehle funktionieren als Benutzer: root und pi, www-data hat keine Shell. Die Befehle führ ich mit PHP aus:

    Code
    shell_exec("sudo initctl stop xbmc");
    oder
    shell_exec("sudo service xbmcs stop");
    oder auch
    shell_exec("sudo /sbin/service xbmc stop");


    nichts davon geht


    www-data hat zZ ja nur zum testen alle sudo Rechte, da der eh nur im LAN erreichbar ist und die einzigen Scripte drauf von mir selbst geschrieben sind, kann man sicherheitstechnisch da mal ein Auge zu drücken.
    [hr]
    hab gerade das ganze mit Scripten probiert und auf was merkwürdiges gestoßen


    wenn ich ein script mit dem inhalt:

    Bash
    #!/bin/bash 
    sudo initctl stop xbmc


    ausführe passiert nichts


    aber wenn ich es so mach

    Bash
    #!/bin/bash 
    sudo -initctl stop xbmc


    (der Bindestrich war eigentlich ein Versehen, aber es funktioniert so..)
    geht es auf einmal.. kann mir das einer erklären?

    Edited once, last by Puseidr ().


  • keine eine idee?

  • Poblem gelößt und Lösung in den ersten Post gepackt