Как перенаправить вывод запущенной программы в / dev / null

Я знаю, что для подавления вывода программы я могу перенаправить ее на /dev/null , например, чтобы скрыть все сообщения об ошибках и предупреждения от хрома. Я могу запустить программу, как это

 chromium-browser 2> /dev/null & 

Однако, если я случайно забуду об ошибках и типах сообщений

  • Почему я могу добавить файл, но не перезаписать его?
  • Восстановление вывода на терминал после выдачи «exec &> filename»
  • Что случилось с этим использованием перенаправления?
  • Перенаправление после запуска процесса
  • Как определить, является ли вывод команды или сценария оболочки стандартным или stderr
  • является ли Linux перенаправлением «>>» медленнее с большими файлами?
  •  chromium-browser & 

    (что очень раздражает, когда они появляются в середине команды). Я не знаю, что делать, кроме как остановить приложение и снова запустить его правильно.

    Могу ли я каким-либо образом перенаправить вывод ошибки без перезапуска приложения?

  • Как определить, является ли вывод команды или сценария оболочки стандартным или stderr
  • перенаправить в тот же файл, что и исходный файл, обработанный командой
  • Что случилось с этим использованием перенаправления?
  • Перенаправление после запуска процесса
  • Почему некоторые linux-инструменты записывают в STDERR вместо STDOUT по умолчанию?
  • Ограничить размер файла журнала
  • 3 Solutions collect form web for “Как перенаправить вывод запущенной программы в / dev / null”

    Вы также можете запустить браузер с nohup, а затем закрыть окно терминала следующим образом:

     nohup chromium-browser & 

    Таким образом, браузер запустится и отсоединится от консоли, которая затем может быть закрыта тихо.

    На это был дан ответ: здесь владр . Ответ (цитирование):

    • присоедините к рассматриваемому процессу с помощью gdb и запустите:
    • p dup2 (open ("/ dev / null", 0), 1) (для перенаправления stdout)
    • p dup2 (open ("/ dev / null", 0), 2) (для перенаправления stderr)
    • отрывать
    • уволиться

    Я попробовал его по следующему сценарию:

    [выпуск после первого комментария:]

      sleep 10 #, поэтому у меня может быть время для присоединения к процессу
     если ["$ sonorphather" == "отец"] # избегать бесконечной рекурсии 
     тогда 
        sonorfather = son ./test & 
     фи 
    
     тогда как true 
     делать 
        эхо "stdout $ sonorfather" 
        эхо "stderr $ sonorfather"> & 2 
        спать 1 
     сделанный 
    

    Я отключил вывод stderr до того, как был создан процесс son, вот результат:

     отец 
     сын 
     отец 
     сын 
     [и так далее...]. 
    

    Надеюсь, это ответит на ваш вопрос: также был перенаправлен процесс обработки сына.

    Вы также можете настроить псевдоним для chromium-browser вместо этого запустите chromium-browser 2> /dev/null

    например, если вы используете bash, отредактируйте /home/username/.bashrc и добавьте строку:

     chromium-browser='chromium-browser 2> /dev/null' 

    или еще лучше

     chrome='chromium-browser 2> /dev/null' 

    и сохраните несколько нажатий клавиш.

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