Когда я бегу nohup some_command &
, вывод идет в nohup.out
; man nohup
говорит, чтобы посмотреть на info nohup
что в свою очередь говорит:
Если стандартный вывод является терминалом, стандартный вывод команды добавляется в файл «nohup.out»; если это невозможно записать, он добавляется в файл '$ HOME / nohup.out'; и если это не может быть записано, команда не выполняется.
Но если у меня уже есть одна команда, использующая nohup
вывод, /nohup.out
и я хочу выполнить другую nohup
команду, могу ли я перенаправить вывод nohup2.out
?
2>&1&
делать?2>&1
перенаправляетstderr
на тот же выходной файл,stdout
который есть в этом случаеnohup2.out
&> nohup2.out
.По какой-то причине вышеупомянутый ответ не работал для меня; Я не вернулся в командную строку после запуска, как я ожидал с помощью завершающего символа &. Вместо этого я просто попробовал с
и это работает так, как я хочу. Оставьте это здесь на случай, если кто-то еще окажется в такой же ситуации. Запуск Bash 4.3.8 для справки.
источник
Поскольку обработчики файлов указывают на i-узлы (которые хранятся независимо от имен файлов) в системах Linux / Unix, вы можете переименовать имя по умолчанию
nohup.out
в любое другое имя файла в любое время после запускаnohup something&
. Так же можно сделать следующее:Теперь
something
добавляет строки кnohup2.out
иsomething2
кnohup.out
.источник
Приведенные выше методы удаляют данные вашего выходного файла всякий раз, когда вы запускаете команду nohup.
Чтобы добавить вывод в пользовательский файл, вы можете использовать
>>
команду nohup.Эта команда добавит все выходные данные в ваш файл без удаления старых данных.
источник