Server Status und Steuerung mit Lighttpd und Python

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
arghargh
User
Beiträge: 81
Registriert: Donnerstag 4. September 2008, 22:26

Hi,

ein kleiner ARM-Debian-lighttpd (Linksys NSLU-2) Webserver soll über ein Web-Interface gesteuert werden. Python ist über mod_cgi angebunden und ich kann ein print "Content-type:text/plain\n\nhello world" ausführen.

Jetzt möchte ich mir Prozesse und Speicherauslastung anzeigen lassen und ein Skript für Neustart und Shutdown fabrizieren. Das muss noch nichtmal irgendwelche HTTP-Methoden unterstützen, der einfache Aufruf http://server/shutdown.py reicht mir schon.

Für die Status kann ich mir vorstellen, das ähnlich popen("ps -aux") zu erreichen. Aber wie ist das mit Runterfahren und Neustart?
Der Interpreter muss auf jeden Fall noch die Ausgabe der Befehle zum Client leiten, und sich dann selbst beenden.

Danke schonmal!
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Ich vermute, ein über ``subprocess`` abgesetztes ``halt``, ``init 0`` oder ``init 6`` wird sich schon seinen Weg bahnen und alles um sich herum abhängen ;)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

In dem Fall reicht wohl schon ein ``subprocess.call()``. Am besten via sudo den Befehl zum herunterfahren absetzen und nicht auf die Idee kommen das Python-Skript setsuid zu setzen :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Was nicht funktionieren würde ...
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Kein Problem, einfach setuid auf den Interpreter :wink:
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Was nicht funktionieren würde ...
Hmm? Wenn man für den User unter dem der Interpreter läuft, einen Eintrag mit NOPASSWD in der sudoers hat, der die ausführung vom entsprechenden Shutdown-Befehl erlaubt, wo sollte da das Problem sein?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

Mein Posting bezog sich auf den letzten Teil deines Postings: "[...] das Python-Skript setsuid zu setzen. [...]".
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lunar hat geschrieben:Mein Posting bezog sich auf den letzten Teil deines Postings: "[...] das Python-Skript setsuid zu setzen. [...]".
Ah stimmt, hast recht. Das ist mir entfallen. Wenn man ausreichend verrückt ist, könnte man aber einen binären Preloader reinmachen, der dann das Skript aus seinem Inhalt extrahiert und als root ausführt ;)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten