Seite 1 von 1

ConfigParser und rc.local

Verfasst: Mittwoch 22. Januar 2014, 06:48
von sunnyraven
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

Re: ConfigParser und rc.local

Verfasst: Mittwoch 22. Januar 2014, 07:57
von sunnyraven
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

Re: ConfigParser und rc.local

Verfasst: Mittwoch 22. Januar 2014, 08:50
von 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.