У меня есть какая-то многоагентная система, работающая локально на Python с использованием ZeroMQ. Мастер запускается как основной поток (python Admin.py
), а этот запускает рабочие агенты как multiprocessing.Process
подпроцессы.
И Admin.py, и рабочие процессы записывают выходные данные с помощью простых команд print
. Теперь я пытаюсь получить все данные, которые я вижу на своей консоли: $ python Admin.py > file.txt
. Но этот оператор извлекает только вывод, написанный Admin.py. Я пробовал различные перенаправления, такие как передача sterr в стандартный вывод, а затем выборка стандартного вывода (1>&2 > file.txt
), но безрезультатно. Этот вопрос задавался в различных формах на Satckoverflow (здесь и здесь), и ответы, похоже, включают довольно некоторое дополнительное кодирование Python. Есть ли решение этой проблемы в Bash? Я вижу весь вывод на своей консоли, так почему же Bash не может перенаправить его в файл?
2>&1 > file.txt
? - person Serge Ballesta   schedule 11.11.2014> file.out 2>&1
. Порядок имеет значение при переадресации. Ваш пример 1) перенаправляет stderr в то же место, куда в данный момент идет stdout, затем 2) перенаправляет stdout (но не stderr) в другое место... - person twalberg   schedule 11.11.2014