Python nie wyjdzie, gdy zostanie wywołany z absolutną ścieżką z crona lub podpowłoki
Mam kilka skryptów Pythona uruchamianych przez crona i nie są już poprawnie zamykane, gdy skrypt jest wywoływany z bezwzględną ścieżką. Będą wisiały, dopóki proces nie zostanie zakończony. Myślę, że stało się to po przeniesieniu / var i / home na inną partycję.
Sprawdziłem zmienne środowiskowe i nie widziałem niczego oczywistego, dzieje się to albo podczas uruchamiania z cronem albo pod powłoką bash, ale nie w przypadku bezpośredniego uruchomienia.
Jeśli uruchomię go jako podpowłokę, zawiesza się, dopóki go nie zabiję (ctrl-c), a następnie da mi dane wyjściowe.
[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
Jeśli nie wywołam skryptu, kończy się zgodnie z oczekiwaniami bez zawieszenia:
[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
Otrzymuję natychmiastowy błąd dziennika, gdy wystąpi wyjątek:
Dec 9 13:33:44 rock abrt: detected unhandled Python exception in '/var/home/wotstats/test/test.py'
Przeprowadziłem kilka testów opartych na danych wejściowych i stwierdziłem, że ten problem występuje nawet wtedy, gdy jest wywoływany jako /test.py i uruchamiany jako root. Próbowałem także / root i / usr z tym samym efektem.
Podobne lub to samo pytanie został zapytany tutaj i rozwiązany przez ponowne uruchomienie; Wolałbym to rozgryźć i uniknąć ponownego uruchomienia, jeśli mogę.