почему этот параллельный процесс не записывает вывод в файлы, а вместо этого печатает на консоли?

Отказ от ответственности: Это более общий вопрос о том, что я спросил на biostars.org о параллельности и записи в файл.

Когда я запускаю программу ( obisplit из пакета obitools ) последовательно, она считывает один файл и создает несколько файлов на основе некоторого критерия (не важного здесь) в исходном файле:

  • Записать код состояния выхода из ssh
  • Как мне выполнить мой сценарий еще одну команду после того, как предыдущая команда вернет ненулевое значение до того, как оно будет прервано?
  • Как написать скрипт abort-on-error без добавления `|| выйдите из $? `в каждую строку?
  • разделять файл, передавать каждую часть в качестве параметра скрипту, запускать каждый скрипт параллельно
  • Вывод журнала экрана GNU в режиме реального времени?
  • Как оценивать следующий код
  •  input_file.fastq |____ output_01.fastq |____ output_02.fastq |____ output_03.fastq 

    Однако, когда я разбиваю входной файл и запускаю его параллельно (версия из ubuntu repo: 20141022),

     find . * | grep -P "^input_file" | parallel -j+3 obisplit -p output_{/.}_ -t variable_to_split_on {/} 

    Я ожидал получить файлы

     input_file_a.fastq |____ output_input_file_a_01.fastq |____ output_input_file_a_02.fastq |____ output_input_file_a_03.fastq input_file_b.fastq |____ output_input_file_b_01.fastq |____ output_input_file_b_02.fastq |____ output_input_file_b_03.fastq input_file_c.fastq |____ output_input_file_c_01.fastq |____ output_input_file_c_02.fastq |____ output_input_file_c_03.fastq 

    но вывод выводится только на консоль.

    Есть ли что-то, что связано с parallel которое вызывает эту печать для консоли или может быть так, как obisplit ведет себя по какой-либо причине? Есть ли способ убедить каждое ядро, созданное parallel с печатью, в конкретный файл вместо консоли?

  • Использование Diff с -y для получения бок о бок
  • Как уменьшить вывод ps aux на несколько строк?
  • Параллельно читать содержимое заархивированного файла без извлечения
  • Запуск GNU-параллелизма - на панели SGE зависает
  • Безопасно ли закрывать оболочку, просто нажав «X» или используя «ctrl + d»?
  • Записать код состояния выхода из ssh
  • One Solution collect form web for “почему этот параллельный процесс не записывает вывод в файлы, а вместо этого печатает на консоли?”

    Звучит так, как будто obisplit ведет себя по-другому, если выход перенаправляется.

    Вы можете запросить GNU Parallel для вывода в файлы:

     seq 10 | parallel --results output_{} echo this is input {} >/dev/null 

    (или если ваша версия старше:

     seq 10 | parallel echo this is input {} '>' output_{} 

    )

    Он будет создавать output_# , output_#.err , output_#.seq .

    Linux и Unix - лучшая ОС в мире.