Перенаправление ошибок в программе для и входа и ошибочный файл

Я использовал reviki и ikiwiki, оба из которых приспособлены к хранению содержания Wiki в системе управления версиями, такой как Подверсия, вместо того, чтобы прокрутить их собственное специальное управление версиями. reviki в особенности кажется простым в использовании, но это немного более хитро для установки, чем ikiwiki, так как Вам нужен TomCat или подобный, а не просто поддержка CGI.

2
задан 1 April 2010 в 12:01
2 ответа

Дайте этому попытку:

/usr/java/jdk1.6.0/bin/java MyJavaStandalone 2>&1 >> MyJavaStandalone.log | tee -a MyJavaStandalone.err >> MyJavaStandalone.log &
1
ответ дан 3 December 2019 в 13:30
  • 1
    @Dennis That' s большой. It' s работающий отлично, поскольку я ожидал. Между прочим, I' ve небольшой вопрос, почему мы должны указать MyJavaStandalone.log дважды прежде и после tee команда? –  Gnanam 1 April 2010 в 12:55
  • 2
    Первый - для получения стандартного вывода, и второе для получения вывода ошибок как " branch" из " tee" (который подключен к " pipe" - думают с точки зрения инфраструктуры). –  Paused until further notice. 1 April 2010 в 17:12

Можно достигнуть того, что Вы хотите как это:

/usr/java/jdk1.6.0/bin/java MyJavaStandalone 3>&1 2>&1 1>MyJavaStandalone.log| tee -a MyJavaStandalone.log > MyJavaStandalone.err

Что это делает:

  • Создайте новый дескриптор файла 3, который будет произведен к STDOUT (3>&1)
  • Перенаправьте STDERR к STDOUT (2>&1)
  • Вывод STDOUT к файлу журнала (1>MyJavaStandalone.log)
  • tee берет STDOUT предыдущей команды, которая является на самом деле STDERR Вас приложение Java, добавляет вывод к файлу журнала (таким образом, файл журнала теперь имеет оба потока), и копирует поток к STDOUT
  • Наконец, это STDOUT просто перенаправляется к Вашему журналу ошибок
0
ответ дан 3 December 2019 в 13:30
  • 1
    Оба " log" и " err" должен продолжать добавлять. Эта команда перезаписывает обоих файлы, когда я выполняюсь в следующий раз. –  Gnanam 1 April 2010 в 13:09
  • 2
    You' право ре, для этого необходимо изменить последние два ' > ' к ' > > ' –  Prof. Moriarty 1 April 2010 в 14:43
  • 3
    You' ре, не использующее дескриптор файла 3 после создания его. Попытайтесь удалить 3>&1 и you' ll находят, что это все еще работает. В той точке Ваша команда совпадает с моей. –  Paused until further notice. 1 April 2010 в 17:11
  • 4
    You' право ре, я понял это самостоятельно через некоторое время :P –  Prof. Moriarty 1 April 2010 в 21:26

Теги

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