Перенаправить nohup на стандартный вывод в скрипте

У меня есть скрипт .sh, который через nohup запускает множество скриптов Python.

Я использую nohup, чтобы запускать их в фоновом режиме и избегать необходимости нажатия войти при появлении сообщения «nohup: игнорирование ввода и добавление вывода в «nohup.out»».

nohup python script2.py 2> /dev/null &
nohup python script2.py 2> /dev/null &
[...]

Когда я запускаю это .sh, я запускаю два скрипта Python в фоновом режиме, хорошо.

Эти сценарии Python генерируют файл журнала, из которого я получаю std.stdout:

stream_config = logging.StreamHandler(sys.stdout)  <-- here
stream_config.setFormatter(formatter)
importer_logger.addHandler(stream_config)  

Из-за моей реализации я хочу запустить эти nohup, но отправлю стандартный вывод на PID 1

Я могу сделать это легко без использования nohup следующим образом:

python tester.py > /proc/1/fd/1

Но как я могу объединить эти «не нажимайте Enter, чтобы продолжить» и «вывести файл на стандартный вывод»?

Я пробовал это без везения:

nohup python tester.py > /proc/1/fd/1 2> /dev/null &
nohup python tester.py 2> /proc/1/fd/1 &

Заранее спасибо.

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
327
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете исправить свою команду, используя оболочку для косвенного запуска вашей программы, чтобы вы могли перенаправить ее вывод, а не вывод nohup:

nohup bash -c "exec python tester.py > /proc/1/fd/1" 2> /dev/null &

Это не лучший вариант, но он, по крайней мере, устраняет проблему, из-за которой ваши попытки не увенчались успехом.

Другие вопросы по теме