Script (per Screen) im Autostart

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Galotar
User
Beiträge: 3
Registriert: Donnerstag 14. Februar 2013, 23:31

Guten Abend =)

Ich wollte mich einmal Vorstellen:

Ich heiße Kevin , bin Student Angewandter Informatik an der TU Dortmund (Anwendungsfach Maschinenbau)
und bin 22 Jahre Alt.

Da mir leider die Praxis an der Uni fehlt haben ein Kumpel von mir und ich uns einen Homeserver bei mir zuhause aufgestellt - auf Debian Basis.
In erster Linie soll dieser im Prinzip Daten Filme / Musik abspeichern, bisschen mit VMs spielen etc..
Einen kleinen bescheidenen Minecraftserver für Freunde.

Nun zu meinem Problem:

Ich habe ein Raspberry Pi am Router, welches ein Pythonscript ausführen soll (Funktioniert auch ohne Probleme wenn man es selbst startet), nur möchte ich das dieses beim eventuellen Neustart in einem Screen -S ipscan mitstartet.
Dieses Script verschickt jedem eine E-Mail, der im Email Verteiler ist, sollte sich die Öffentliche IP ändern.

Ich habe dort wheezy Debian drauf.

Der Ordner gehört dem User

Folgendes habe ich versucht:
in

Code: Alles auswählen

/etc/rc.local
Hierbei passiert nix bzw. wenn ich es ohne su user -c öffne premission denied

Code: Alles auswählen

# Autoipscan Script
su user -c Screen -S ipscan 
su user -c Screen -S ipscan -X stuff $'python3 /home/user/pyAUOIPSCANNER/pyAUTOIPSCANNER.py \n' # Schickt Screen den Befehl das Script zu öffnen
oder Hierbei wird mir der Prozess angezeigt aber er sendet keine E-Mail (keine Ahnung wo er sich dort aufhängt)

Code: Alles auswählen

# Autoipscan Script
su kevkev -c python3 /home/user/pyAUTOIPSCANNER/pyAUTOIPSCANNER.py
Das Script ist in pyAUTOIPSCANNER.py(main) ipmail.py und ipscan.py aufgeteilt und besitzt eine SQlite3 DB emailverteiler.db diese sind im Ordner pyAUTOIPSCANNER

Am liebsten wäre mir es mit Screen zu machen, damit man den Prozess eventuell anschauen kann

Meine Frage: Habt ihr eventuell eine Lösung, damit dies ausgeführt wird?
Eventuell eine Elegantere Lösung?

Vielen Dank und ich hoffe ich hab alles richtig erwischt =)

Mit freundlichen Grüßen

Galotar
Benutzeravatar
sparrow
User
Beiträge: 4600
Registriert: Freitag 17. April 2009, 10:28

Die elegantere Lösung wäre das ganze als Daemon zu bauen und kein Screeen zu verwenden. Das entsprechende Script könnte dann direkt beim booten über die ganz normalen Startscripte gestartet werden.

Das hier könnte dir helfen.
BlackJack

@Galotar: Man könnte auch Logging einbauen um besser nachverfolgen zu können was das Skript tut und was nicht. Eventuell wäre so etwas wie `supervisord` auch ganz nützlich.
Galotar
User
Beiträge: 3
Registriert: Donnerstag 14. Februar 2013, 23:31

Ok vielen Dank für die Antworten =) ich werde mich mal morgen dran setzen =) und dann Rückmeldung geben =)

Schönes Wochenende!
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

Code: Alles auswählen

In [5]: reply = "Ok vielen Dank für die Antworten =) ich werde mich mal morgen dran setzen =) und dann Rückmeldung geben =)"
In [6]: reply.count("=)")
Out[6]: 3
:(
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Man könnte aber auch einfach DynDNS nutzen und das ganze Problem einfach richtig lösen statt IP-Adressen umherzuschicken. Dafür gibt es DNS ja.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Galotar
User
Beiträge: 3
Registriert: Donnerstag 14. Februar 2013, 23:31

Ja klar das hätten wir auch machen können, nur für 4 oder 5 Leute lohnt sich das nicht.
Außerdem hat man das nötige Know-How um es selbst zu lösen, es ist einfach ein 100x geileres Gefühl. 8)

Es dient ja halt zur Weiterbildung für uns.

Bisher bin ich noch nicht dazu gekommen die Vorschläge auszuprobieren.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Naja, wieso, man lernt schon auch wie man die neue IP rausfindet, wie man sie an den DynDNS-DIenst den man nutzt übermittelt und so späße. Außerdem hat man danach die Möglichkeit Hyperlinks zu setzen, was bei einer wechselnden IP eher wenig Sinn macht.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten