Intereting Posts
Как вернуть sudo на Ubuntu? Fedora 24 (ядро 4.7.2.201) сбой при загрузке после того, как были добавлены гостевые дополнения virtualbox Как построить определенные строки для двух графиков в Gnuplot? Как отличаются основные менеджеры пакетов? Какие форматы файлов поддерживает CUPS? Установите папку на диске в fstab. Переехать? копирование и переименование нескольких файлов в скрытую папку в одной строке Как заставить Portage всегда выбирать установку и обновление до последней доступной версии выбранного программного обеспечения? Неожиданные результаты тестирования серийного шлейфа с использованием эха и кота Отключение веб-камеры multiseat, можно ли получить доступ к виртуальным терминалам на любом месте? В чем причина изменения имени известных приложений? Последствия наличия переменной переменной $ PATH? SELINUX_ERR op = security_bounded_transition rsync рекурсивно с определенной глубиной подпапок

Как получить nohup для выхода с чистого листа при использовании перенаправления файлов

Используя следующую команду:

nohup tail -f file | stdbuf -o0 awk '/string1/ && /string2/' > file & 

Это создает данные в моем файле, что я хочу, но это также дает мне следующее:

 [2] 13717 [root@server]# nohup: ignoring input and redirecting stderr to stdout 

Оттуда мне нужно ctrl-c, чтобы вернуться к подсказке. Что мне нужно изменить, чтобы вернуться к подсказке?

У вас действительно есть подсказка. Что происходит, так это то, что вы получаете его до того, как nohup сообщит о своих предупреждениях о stdin и stdout. Если вы наберете команду, она будет работать так же, как вы ожидали бы, несмотря на визуально неортодоксальное видимое расширение в вашу подсказку.

Если это действительно оскорбительно для вашей чувствительности, вы можете обойти ее с подоболочкой:

 $ (nohup stuff and things > logfile & ) > /dev/null 2>&1 

В качестве альтернативы вы можете обратиться к предупреждениям. Вас предупреждают, потому что вы не обрабатываете стандартный ввод и стандартную ошибку. Если вы справляетесь с ними самостоятельно, nohup нечего менять, и поэтому он будет молчать:

 $ nohup stuff and htings > logfile 2> errfile < /dev/null & 

Если вы не хотите фиксировать стандартную ошибку, вы можете использовать /dev/null для вашего файла ошибки; если вы хотите, чтобы он перешел на то же место, что и стандартный вывод, вы можете использовать 2>&1 .