ConfigParser und rc.local

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
sunnyraven
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 13:30

Hallo,
eine Sache macht mir gerade zu schaffen.

Mein Programm liest sich eine config via ConfigParser. So lange ich das tool direkt von der Konsole aus starte läuft alles wunderbar. Nun soll das tool über die rc.local beim starten des Rechners gesartet werden. Da bricht er aber beim laden der rc.local direkt ab:

Aufruf im Programm:

Code: Alles auswählen

import ConfigParser
while True:
    cfg = ConfigParser.ConfigParser()
    cfg.read('.conf')....
Aufruf in der rc.local:

Code: Alles auswählen

python /home/tools/get_02_00_01.py&
exit0
Die Fehlermeldung:

Code: Alles auswählen

$ Traceback (most recent call last):
  File "/home/tools/get_02_00_01.py", line 126, in <module>
    DEBUG = cfg.get('startConf','DEBUG')
  File "/usr/lib/python2.7/ConfigParser.py", line 607, in get
    raise NoSectionError(section)
ConfigParser.NoSectionError: No section: 'startConf'
^C
Kann mir einer von Euch sagen wo das Problem liegt oder mache ich da einen Denkfehler. Das Programm und die .conf liegen im selben Ordner
sunnyraven
User
Beiträge: 17
Registriert: Montag 10. Juni 2013, 13:30

Habe das Problem gelöst. Es hängt mit dem ausführen der Datei aus der rc.local zusammen. Innerhalb der rc.local muss man erst mit cd in das Verzeichnis apringen und dann das Programm starten:

Code: Alles auswählen

cd /home/tools; Python /home/tools/programm.py
BlackJack

@sunnyraven: Damit änderst Du das Arbeitsverzeichnis für alles was in dem `rc.local`-Skript danach gemacht wird. Besser wäre es im Python-Programm den richtigen Pfad zur Konfigurationsdatei anzugeben. Schau Dir mal an an was der Name `__file__` in dem Python-Modul gebunden ist, das kann hier hilfreich sein.
Antworten