Python wird nicht beendet, wenn es mit einem absoluten Pfad von cron oder subshell aufgerufen wird

Ich habe einige Python-Skripte, die über cron ausgeführt werden und die nicht mehr korrekt beendet werden, wenn das Skript mit einem absoluten Pfad aufgerufen wird. Sie bleiben hängen, bis der Vorgang beendet ist. Ich glaube, es ist passiert, nachdem ich / var und / home auf eine andere Partition verschoben habe.

Ich habe die Umgebungsvariablen überprüft und konnte keine offensichtlichen Fehler feststellen. Dies geschieht entweder beim Ausführen mit cron oder einer bash-Subshell, aber nicht beim direkten Ausführen.

Wenn ich es als Subshell ausführe, bleibt es hängen, bis ich es beendet habe (Strg-C) und gibt dann die Ausgabe aus.

[wotstats@rock test]$ echo 'assert 0==1, "fails"' > test.py
[wotstats@rock test]$ /bin/bash -c "/usr/bin/python /var/home/wotstats/test/test.py"
^CTraceback (most recent call last):
  File "/var/home/wotstats/test/test.py", line 1, in <module>
    assert 0==1, "fails"
AssertionError: fails

Wenn ich ein Skript nicht aufrufe, wird es wie erwartet beendet, ohne zu hängen:

[wotstats@rock test]$ /bin/bash -c "echo 'assert 0==1, \"fails\"' | /usr/bin/python"
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AssertionError: fails

Ich erhalte einen sofortigen Protokollfehler, wenn die Ausnahme auftritt:

Dec  9 13:33:44 rock abrt: detected unhandled Python exception in '/var/home/wotstats/test/test.py'

Ich habe einige Tests basierend auf der Eingabe ausgeführt und festgestellt, dass dieses Problem auftritt, auch wenn es als /test.py und als root ausgeführt wird. Ich habe auch versucht / root und / usr mit dem gleichen Effekt.

Ähnliche oder gleiche Frage wurde hier gefragt und durch einen Neustart behoben; Ich würde es lieber herausfinden und den Neustart vermeiden, wenn ich kann.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage