Класс регистрации Python не работает при отправке stdout в / dev / null

918
Qlii256

У меня есть сценарий Python 3, в котором включена регистрация (для целей отладки). Всякий раз, когда я запускаю / выполняю этот скрипт, он работает нормально, и создаются лог-файлы.

Я также создал скрипт setup.sh-bash для загрузки и установки моего приложения. Затем он автоматически запускает сценарий с помощью nohup, чтобы запустить его в фоновом режиме. За этой командой следуют> / dev / null 2> & 1 &, поэтому она ничего не выводит на консоль. Тем не менее, это «вызывает» модуль регистрации в Python, так как он больше не может выводить что-либо в файлы журнала. Он выводит в / dev / null, если я прав.

Я искал в Интернете, чтобы найти решение, но у меня не получилось с каждой попытки. Я надеюсь, что кто-то может придумать идею к этому. Может быть, я должен использовать что-то еще, чтобы мой скрипт работал вечно (конечно, до перезагрузки :)) с возможностью использовать модуль регистрации Python 3 и не иметь вывода в консоли.

Точная команда, которую я использую для запуска моего скрипта, выглядит следующим образом:

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

заранее спасибо

0

1 ответ на вопрос

1
Qlii256

I am very 'sorry' to say that I have now found the solution myself. It seems that I did not dig deep enough. I am now using daemon-start-stop supported by most UNIX systems, and it's working as it should.

I followed a tutorial on the internet which can be found here: http://blog.scphillips.com/2013/07/getting-a-python-script-to-run-in-the-background-as-a-service-on-boot/

I hope this helps with a lot of other users having the same problem/searching for the same answer.

Thansk for reading.

Похожие вопросы