Klasa logowania Pythona nie działa podczas wysyłania stdout do / dev / null

0

Mam skrypt Pythona 3 z włączonym protokołowaniem (do celów debugowania). Za każdym razem, gdy uruchamiam / wykonuję ten skrypt, działa dobrze i tworzone są pliki dziennika.

Stworzyłem także skrypt setup.sh-bash, aby pobrać i zainstalować moją aplikację. Następnie automatycznie uruchamia skrypt za pomocą nohup , aby uruchomić go w tle. Po tym poleceniu następuje & gt; / dev / null 2> i 1 i więc nie wysyła niczego do konsoli. Jednak ten „błąd” modułu logującego z Pythona, ponieważ nie może już wysyłać czegoś do plików dziennika. Wyprowadza do / dev / null, jeśli mam rację.

Szukałem online, aby znaleźć rozwiązanie, ale nie udało mi się przy każdej próbie. Mam nadzieję, że ktoś wpadnie na pomysł. Może powinienem użyć czegoś innego, aby mój skrypt działał wiecznie (do czasu ponownego uruchomienia :)) z możliwością użycia modułu logowania Python 3 i nie mieć wyjścia w konsoli.

Dokładne polecenie, którego używam do uruchomienia skryptu, wygląda następująco:

su -l -s /bin/bash scriptuser -c 'nohup python3 '/etc/scriptroot/main.py > /dev/null 2>&1 &'

Z góry dziękuję

Qlii256
źródło

Odpowiedzi:

1

Bardzo mi przykro powiedzieć, że sam znalazłem rozwiązanie. Wygląda na to, że nie kopałem wystarczająco głęboko. Używam teraz demona-start-stop obsługiwanego przez większość systemów UNIX i działa tak, jak powinien.

Śledziłem samouczek w Internecie, który można znaleźć tutaj: http://blog.scphillips.

Mam nadzieję, że pomoże to wielu innym użytkownikom, którzy mają ten sam problem / szukają tej samej odpowiedzi.

Dziękuje za przeczytanie.

Qlii256
źródło