Python Skript nach reboot in lokale MySql schreiben

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Guten Morgen miteinander,

    ich habe eine lokale MySQL-DB auf dem Raspberry angelegt und ein passendes Skript dazu geschrieben. Nun würde ich gerne nach einem Reboot das Skript automatisch ausführen lassen. Jedoch schreibt mir das Skript nichts in die Datenbank. Der MySQL-Server startet erfoglreich nach einem reboot, nur wird nichts reingeschrieben. Ich habe extra die rc.local angepasst, das beim booten ein Datum in eine Datei geschrieben, daher weiß ich dass das die rc.local ausgeführt wird. Auch ein Sleep-Befehl bringt nichts.

    Bin so langsam am Verzweifeln. Unten findet ihr den Code des Skripts und der rc.Local.

    Gruß freakontour

    rc.local:


    python skript:

    Einmal editiert, zuletzt von freakontour (20. September 2017 um 09:05)

  • Python Skript nach reboot in lokale MySql schreiben? Schau mal ob du hier fündig wirst!

  • Wird denn was in die DB geschrieben, wenn du das Script manuell startest ?
    Aber prinzipiell würde ich empfehlen absolute Pfade zu benutzen:

    Code
    (/bin/sleep 10;/usr/bin/python /pfad/zum/script/mDB.py)&

    P.S. Ich würde das Passwort in deinem geposteten Script anonymisieren.

  • Danke für die schnelle Hilfe, ich muss 'executemany' nutzen denke des hängt mit dem 'date' zusammen.
    Habe die rc.local Datei angepasst und funktioniert nun.
    Danke für eure schnelle Hilfe.

  • Hallo,

    Zitat

    ich muss 'executemany' nutzen denke des hängt mit dem 'date' zusammen.


    Definitiv nicht.
    `executemany`dient dazu, mehrere Datensätze "in einem Rutsch" in die DB zu schreiben. Das hat so rein gar nicht mit dem Datentyp zu tun, den du in die DB schreibst. Wenn du "nur" einen Datensatz schreibst und dein SQL-Statement nicht mit `execute` funktioniert solltest du da mal auf Fehlersuche gehen.

    Gruß, noiseflloor

  • Wie immer, fehlen bei den Scripten die absoluten Pfade.
    Wenn ein Script ohne saubere Benutzerumgebung (so beim Systemstart oder aus der Crontab) gestartet werden soll, ohne dass de Benutzer, mit dessen rechten das Script läuft, angemeldet ist,
    dann funktioniert das normalerweise nicht wie gewünscht.

    Deshalb sollte man sich angewöhnen, bei allen Scripten immer entweder die PATH-Variable mit allen Pfaden zu definieren, oder bei jedem Befehl und Dateizugriff den absoluten Pfad zu nehmen.
    (Relative Pfade kann man nehmen, wenn man in dem Script vorher explizit in das Verzeichnis geht.)

    Computer ..... grrrrrr

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!