Seite 1 von 1

sys.exit / atexit - exitcode abfragen

Verfasst: Freitag 6. Februar 2009, 12:11
von pug
Hallo,

ich habe ein Script welches beim Beenden noch einige Meldungen loggen soll.

Mit atexit.register kann ich ja relativ einfach eine Funktion definieren, welche beim Beenden aufgerufen wird, allerdings habe ich keine Ahnung wie ich an den exitcode komme.

Kann ich irgenwie auf den exitcode zugreifen mit dem sys.exit aufgerufen wurde?

Grüße
Pug

Verfasst: Freitag 6. Februar 2009, 13:45
von Hyperion
Wozu brauchst Du denn den Code in Deinem Programm? Eigentlich ist der doch für externe Programme gedacht ...

Edit: Im übrigen kann es ja bei einer Unterbrechung von außen gar keinen Exit-Code geben, oder? Ich meine ein sys.exit(42) Statement wird ja niemals aufgerufen, wenn von außen an irgend einer Stelle das Programm abgebrochen wird ...

Re: sys.exit / atexit - exitcode abfragen

Verfasst: Freitag 6. Februar 2009, 16:33
von derdon
pug hat geschrieben:Kann ich irgenwie auf den exitcode zugreifen mit dem sys.exit aufgerufen wurde?

Grüße
Pug
Ja, zum Beispiel in der Bash mit

Code: Alles auswählen

echo $?

Verfasst: Freitag 6. Februar 2009, 17:20
von str1442

Code: Alles auswählen

>>> try:
...  sys.exit(2)
... except SystemExit, e:
...  print e.message
... 
2
Man kann in eigenen Programmen übringens direkt "raise SystemExit(exit_code)" nutzen.

EDIT: Hm, das könnte man eigentlich benutzen, um "atexit" selber zu bauen, wenn man wollte, und es auf der höchsten Ebene des Programms einrichtet. Danach mit einem einzelnen "raise" neu werfen lassen. Aber es gibt ja atexit.