2017-12-31 61 views
1

Wenn ich meine Python-Datei normal starte, funktioniert es. aber wenn ich es mit cron starte, erscheint der ('Connection aborted.', gaierror(-2, 'Name or service not known')) Fehler auf allen Anfragen.Python-Anfragen 'Verbindung abgebrochen.' wenn es mit einem Cronjob gestartet wird

Sie können meine Cron-Konfiguration auf meine Frage vor sehen. aber es sollte nicht wichtig sein.

+3

Blick in meine Kristallkugel, sehe ich Ihr Problem ist auf Linie 57. –

+0

@JohnGordon in meiner Kristallkugel sehen https://imgur.com/ZDzgATc. Ich habe dieses Bild vor langer Zeit gemacht :) – furas

Antwort

3

cron Jobs werden in einer anderen Umgebung (und normalerweise Shell) ausgeführt, in der sich ein Benutzer an einem Terminal angemeldet hat. Dies bedeutet, dass Umgebungsvariablen, die bei der Anmeldung deklariert werden können, für Cron möglicherweise nicht deklariert werden oder andere Werte haben.

Der Fehler requests Berichte bezieht sich auf das Auflösen von Hostnamen in IP-Adressen, und das bedeutet oft ein DNS-Konfigurationsproblem.

Suchen Sie also nach Umgebungsvariablen, die in Ihrer Terminalumgebung deklariert sind und nicht für cron festgelegt sind. Diese könnten LOCALDOMAIN oder RES_OPTIONS sein, aber es kann andere geben, die von Ihrer DNS-Einrichtung abhängig sind. Es gibt einige Informationen in der Manpage resolv.conf.

können Sie herausfinden, was die cron-Umgebung einen Test Cron-Job durch die Einrichtung ist, die die Umgebung in einer Datei-Dumps:

MM HH * * * env > ~/cron_env 

Wechsel MM und HH einige bald Minuten und Stunden auftreten. Dann überprüfen Sie den Inhalt der Datei ~/cron_env und vergleichen Sie es mit dem Ihres Benutzers.

+0

das Problem war, weil auf Boot Linux hat keine IP. Ich warte auf den Netzwerkdienst ist abgelaufen. –

Verwandte Themen