Beiträge von fireman-88

    Läuft das Bash-Skript? Wenn ja, wo liegt das bei Dir und wie hast Du das gestartet?

    Ich habe keinen Monitor angeschlossen, daher ist '--output' bei mir 'default'. Wenn auf aus geschaltet wird, zeigt mir DISPLAY=:0 xrandr --current

    Code
    Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080
    default connected
       1920x1080      0.00

    an und wenn auf an geschaltet ist, dann

    Code
    xrandr: Failed to get size of gamma for output default
    Screen 0: minimum 1920 x 1080, current 1920 x 1080, maximum 1920 x 1080
    default connected 1920x1080+0+0 0mm x 0mm
       1920x1080      0.00*

    also eine Zeile mehr und nach 'default connected' die Auflösung usw.. D.h. IMHO es funktioniert bei mir.

    Ich kann ja morgen mal einen Moni anklemmen oder / und jemand anderes hat Lust und Zeit das mal zu testen.

    ist bei mir gleich.

    Ich glaube aber jetzt läufts.

    Ich habe das moni_test.sh einmal mit bash gestartet.

    Schließe ich die cli, geht es wieder nicht mehr.

    Wie gehe ich vor das dies Dauerhaft läuft ?

    Ansonsten schreibt er brav 0 oder 1 in die Textdatei.

    Wie oft fragt er die Textdatei denn nun ab ? Sehe oder verstehe es noch nicht ganz in der bash.

    Ok, ich habe mal gespielt... und alles nur grob geschrieben.

    Also ein Verzeichnis /var/www/html/beispiel erstellt und das PHP-Skript im Browser aufgerufen.

    Dann

    Und schon passen die Rechte und kein Webserver muss im Verzeichnis eines Users etwas ausführen.

    habe den Raspi neu aufgesetzt mit apache und php installiert.

    test.php und moni_test.sh wie oben angelegt.

    Es gibt leider keine Textdatei mit beispiele.txt.

    Moni an oder Moni aus im Webserver bringt leider kein Ergebnis


    aaaah

    im www hat wieder alles root rechte

    Dann gib die Skripte dem User christian (chown ...), setze die ACL für christian und rufe die mit

    PHP
    shell_exec('/bin/bash /var/www/html/display_off.sh');

    im PHP-Skript auf! Keine Ahnung ob das so funktioniert, wenn die Skripte in /var/www/html liegen.

    //Edit

    Sorry! Die liegen jetzt ja in /home/christian. :blush:

    ja die bash scripte liegen bereits im home.

    Liegt es an den root rechten der php dateien warum ich diese nicht ausführen kann oder warum regt sich per browser garnichts ?

    Ich habe jetzt nocheinmal die bash und php alle 4 neu erstellt

    jetzt habe ich es wie folgt:

    sh Script läuft per bash und auch ohne bash davor.

    Code
    chmod +x /home/christian/display_off.sh

    ausgeführt

    Ausführung mittels php läuft auch.

    Aber root im www ist ja wohl nicht Sinn der Sache oder ?

    Ausführung über den Browser läuft natürlich nicht.

    Schade, dass Du so schnell aufgibst.

    Dabei sind schon seit ca. 1971 die man-pages auf jedem unixoiden Betriebssystem mitinstalliert, so auch bei Deinem Linux, was sich auch seit der Erfindung des interaktiven Internets (Web 2.0) nicht geändert hat.

    In der man-page von "set file acl" < man setfacl > wäre unter EXAMPLES schon das erste Beispiel zutreffend gewesen, wenn Du den Username von lisa auf christian und die Rechte von r auf rx änderst.

    Die Scripte funktionieren mit dem Environmemt des Users christian. Deshalb sollten sie auch dem User christian gehören und im Homeverzeichnis des Users christian abgelegt sein.

    Servus !

    also die display_off.sh bekommt die Rechte im home Verzeichnis ?

    setfacl -m u:christian:rx display_off.sh

    Jetzt kann ich das php Script nicht mehr ausführen. Keine Berechtigung

    Linux ist ein Multiüser Betriebssystem. Ein Programm wird mit den Umgebunsvariablen, sohin auch mit der uid= , des aufrufenden Users gestartet. Der User www-data ist ein Systemuser (uid < 1000) und hat keine eigene Grafikumgebung, sodass er "xrandr", das in die X-Org/Wayland Konfiguration eingreift, nicht erfolgreich ausführen kann.

    Wenn Du aus einem Grafikterminal das Script aufrufst, geschieht das als User pi, der auf einem Grafiksystem eingeloggt ist. Das Script startet dann mit den Umgebungsvariablen des Users pi und seinem X- Environement, deshalb funktioniert es - als eingeloggter Grafikuser - einwandfrei.

    Deshalb kannst Du versuchen, die beiden Scripte als User pi im Homer Verueichnis des Users pi zu erstellen und dem User www-data die Berechtigung zu erteilen, als User pi das Script auszuführen. < man acl >

    Servus !

    ok das war mir schon fast klar das es an der Berechtigung liegt.

    Die display_off.sh Datei habe ich jetzt in mein Home Verzeichnis gelegt.

    Welche Berechtigung braucht die sh Datei nun ?

    sudo chown www-data display_off.sh

    Das reicht aber offensichtlich nicht aus.

    Leider lässt sich xrandr im home Verzeichnis mit der Bash auch nicht mehr ausführen.

    Wenn ich den Befehl direkt eingebe dann klappt es.

    Hallo und guten Abend,

    ich nutze HomeAssistant und möchte gerne einen Pi4 mit einem Touch Monitor per HDMI verwenden.

    Es handelt sich um ein 15,4 Zoll Touch.

    Der Touch funktioniert ohne Probleme.

    Ich möchte diesen Monitor gerne per html Befehl ein und Ausschalten.

    Raspberry OS Image aktuell mit dem Imager erstellt.

    PHP mit Apache2 ist installiert.

    Aufruf phpinfo.php vom Laptop funktioniert einwandfrei.

    Bash:

    display_off.sh

    DISPLAY=:0 xrandr --output HDMI-2 --off

    dusplay_on.sh

    DISPLAY=:0 xrandr --output HDMI-2 --auto

    PHP:

    display_off.php

    <?php

    shell_exec('bash /var/www/html/display_off.sh');

    ?>

    display_on.php

    <?php

    $output = shell_exec('bash /var/www/html/display_on.sh')

    ?>

    Berechtigung alle entsprechend gesetzt sowie die erlaubnis in der ini ist gegeben.

    Leider lassen sich die php Scripte nicht von einem anderen PC auslösen.

    Es passiert einfach nichts.

    Über die CLI funktioniert das einwandfrei.

    Habt ihr noch eine Idee?

    Hallo,

    ich habe schon einige Raspberry am laufen mit diversen Netzwerkdiensten über FHEM sowie Kodi.
    Nun möchte ich 2 Standorte mittels VPN über öffentliche Netz verbinden.

    Als Server dient momentan noch eine Fritz Box 7390 mit IPSec.
    Kann bleiben, könnte ich aber durch einen PI mit VPN Server ersetzen.

    Momentan versuche ich einfach den Pi Client auf der Gegenseite einzuwählen in die Fritz Box.
    Verbindung steht, bekomme ich so in der Fritz Box auch angezeigt.
    Das Problem dabei ist, ich komme nur vom Pi Client aus ins andere Netz.
    Nicht vom PC der im Pi Netz hängt.
    Sieht für mich nach einem Routing Problem aus.
    Der PC kennt ja nur sein eigenes Netz bzw. der Router.

    Muss ich die Routen einfach im Router (Kabel Box geht leider nicht) eintragen ?

    Unterschiedliche Private IP Netze sind vorhanden.

    Gruß
    Christian