Как сохранять все print программы в log, если он на втором плане?

Мне хотелось бы сохранять все сообщения, которые показывает через print моя программа, в этом случае main.py

Он попытался несмотря на то, что делал следующее в моем файле crearlog.sh, и функционируй, когда я выполняю на первом плане процесс с ./crearlog.sh

#!/bin/bash
python main.py >> logextraccion.log

Но когда я выполняю на втором плане с ./crearlog.sh & не сохраняют текст в log. Почему происходит это, и как я это решаю?

Добавлять, что я не хочу изменить мою программу main.py, а crearlog.sh.

Мотив, из-за которого я хочу сделать это на втором плане,, - потому что я со связью ssh в удаленный сервер.

8
задан 18.12.2015, 16:03
3 ответа

Хорошие, что ты был бы должен делать, кроме redireccionar нормативный объем производства (stdout), redireccionar стандартная ошибка (stderr).

Ты можешь делать это несколькими способами. Форма - та, которая была показана в комментариях вопроса.

./tu_script.sh > logextraccion.log 2>&1 &

где 2>&1 он говорит ему в вывод стандартной ошибки, чтобы он пошел к нормативному объему производства (прощение из-за скороговорки) и últmo & он, потому что ты хочешь скроллировать это в background.

Более чистая форма:

./tu_script.sh &> logextraccion.log &

С &> ты показываешь ему, что эти redireccionando оба вывода.

Если бы ты хотел, ты мог бы делать обратное, посылать stdout в stderr (нормативный объем производства в стандартную ошибку).

Ты делаешь это таким (я это помещаю подобно примеру, так как на твой случай он не идет):

./tu_script.sh > logextraccion.log 1>&2 &

В этой статье ты (на английском) можешь видеть несколько форм перенаправления.

3
ответ дан 24.11.2019, 15:05

В этом случае лучше использовать nohup так как между другими вещами выполнение продолжит, хотя ты разъединишь твой сеанс.

nohup python main.py

Это бросит программу на втором плане и весь вывод останется хранившимся в nohup.out

Чтобы проверять, прокручивает ли изображение в окне программа ты можешь использовать

jobs -l

Больше информации относительно nohup

2
ответ дан 24.11.2019, 15:05
  • 1
    Это очень интересно, не conoc и # 237; в. Исследовать и # 233; м и # 225; s;) – Elena 18.12.2015, 15:28

Я рекомендую тебя, если ты работаешь со связями путь ssh в удаленные серверы, помимо внесенного решения, он состоит в том, чтобы ты привык к программе screen (или byobu), этот позволит тебе разъединять тебя и reconectarte поддерживая твой сеанс пользователя и когда могут снова взять вещи, где ты оставил их, прежде всего с процессами, которые продолжаются много, и которые падение связи может способствовать тому, чтобы процесс упал также одновременно, что твой сеанс.

Основное использование очень простое:

$ screen 

Он бросит в тебя новый сеанс, там ты можешь бросать твой рукописный шрифт. Ты нажимаешь "Ctrl + в d", разъединяешь этих сеанс и можешь закрывать связь ssh, для reconectarte позже, соглашаешься путь ssh и только должен писать:

$ screen -r

и voila.

Заметь: Ты можешь открывать столько сеансов screen, как ты хотел, потом с-r он попросит у тебя определять ту, которую ты хочешь.

0
ответ дан 24.11.2019, 15:05