Hautpseite / Wissen / Raspberry Pi Shutdown über PHP und Webserver

Raspberry Pi Shutdown über PHP und Webserver

Wenn man auf einem Raspberry Pi eh schon einen Webserver mit PHP Umgebung betreibt, dann macht es vielleicht auch einen Sinn den Raspberry Pi über den Webserver bzw. über einen PHP Befehl herunter fahren zu lassen. Im Grunde ist das nicht wirklich schwer, zumindest würde man dies meinen, wenn es nicht so eine Kleinigkeit geben, würde, die dem PHP Befehl ein Bein stellt! Die Krux an der Sache ist nämlich, dass der Webserver eigentlich nicht über die Rechte und Privilegien verfügt um den „Shutdown-Befehl“ auszulösen. Jetzt könnte man meinen – ist doch kein Problem, da setze ich einfach ein „sudo“ mit in den PHP Befehl und schon ist alles GUT! Doch leider funktioniert diese „Sudo-Trick“ nicht, wie ich mir dies vorgestellt hatte!

Damit PHP bzw. der Webserver-Nutzer das Shutdown Kommando absetzen und ausführen darf, müssen wir ihn dazu berechtigen. Am einfachsten funktioniert dies über diesen Befehl, welches das SUID-Bit setzt:

chmod +s /sbin/shutdown

Das ist zwar nicht wirklich schön, aber dafür schön „Quick and Dirty“.
Besser wäre es die ACL (etc/shutdown.allow) für den Shutdown-Befehl zu verändern und dort den entsprechenden Nutzer zu hinterlegen. Aber ich mag es so einfach wie möglich! Von da her gehe ich hier nicht näher darauf ein.

Als nächstes benötigen wir nur einen Einzeiler im PHP Script, welcher wie folgt aussehen könnte:

<?php
exec("/sbin/shutdown -h now");
?>

 

Würde man nun dieses File am Webserver aufrufen, so fährt der Raspberry Pi herunter!

Genauso könnte man natürlich auch einen Neustart des Systems auslösen!

Dafür modifizieren wird lediglich den Aufruf etwas:

<?php
exec("/sbin/shutdown -r now");
?>

Das war es dann auch schon! Ich wünsche Euch viel Spaß bei der Umsetzung Eures Projekts!

Über EPICENTER

Martin Straub auf Google+

Interessant

Windows Mail App – Relevant – Sonstige – Feature deaktivieren

Microsoft hat schon seit einiger Zeit den Fokus-Posteingang für seine Mail-App aktiviert. Ist dieses Feature …

Kommentar verfassen

Send this to a friend