Существует ли способ перенаправить вывод nohup к файлу журнала кроме nohup.out?

В любой оболочке можно использовать цикл:

for x in /etc/*.conf; do cp -i -- "$x" "$x.orig"; done

(Удалите -i если Вы не заботитесь о перезаписи существующих файлов.)

С zsh можно использовать обеспеченную функцию zcm (вставьте первые три строки Ваш ~/.zshrc):

autoload zmv
alias zcp='zmv -C'
alias zln='zmv -L'
zcp '/etc/(*.conf)' '/etc/$1.orig'

(Добавьте -f после zcp перезаписывать любой существующий целевой файл.)

121
21.08.2012, 01:34
2 ответа

GNU coreutils nohup страница справочника указывает, что можно использовать нормальное перенаправление:

Если стандартный вход является терминалом, перенаправьте его от/dev/null. Если стандартный вывод является терминалом, добавьте вывод к 'nohup.out', если это возможно, '$HOME/nohup.out' иначе. Если стандартная погрешность является терминалом, перенаправьте ее к стандартному выводу. Для сохранения вывода в ФАЙЛ используйте 'nohup КОМАНДУ> ФАЙЛ'.

Править: Я не прочитал Вашу ссылку сначала; у Вас может быть другая версия nohup, хотя этот раздел предполагает, что можно все еще использовать нормальное перенаправление:

 nohup.out          The output file of the nohup execution if
                    standard  output is a terminal and if the
                    current directory is writable.

Можно перенаправить стандартный вывод и стандартную погрешность в различные файлы:

nohup myprogram > myprogram.out 2> myprogram.err

или в тот же файл:

nohup myprogram > myprogram.out 2>&1
142
27.01.2020, 19:29
  • 1
    Ответить конкретно: использовать nohup program > program.out & записать вывод в program.out вместо nohup.out –  Jim Paris 20.08.2012, 23:38
  • 2
    И это не характерно для утилит GNU, поведение указано POSIX. –  Gilles 'SO- stop being evil' 21.08.2012, 01:33
  • 3
    Это, кажется, не работает. Это перенаправляет вывод команды nohup скорее вывод myprogram. –  Kris 07.03.2018, 18:21

программа nohup &> program.out &

или

nohup program &>program.out, если вы не хотите запускать задание в фоновом режиме. Я использую это, когда запускаю несколько заданий одновременно и хочу ограничить их.

2
20.04.2020, 02:09

Теги

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