Как перенаправить все выходные данные в /dev / null?


Я хочу запустить программу (google-chrome) в фоновом режиме, но не позволяйте ей выводить какие-либо сообщения на терминал.

Я пытался сделать это:

google-chrome 2>&1 1>/dev/null &

однако терминал по-прежнему заполняется без сообщений типа:

[5746:5746:0802/100534:ошибка: object_proxy.cc(532)] не удалось вызвать метод: org.хром.Управления ГДП.EnumerateStorag...

что я делаю не так? Как мне перенаправить все вывод /dev/null?

3 58

3 ответа:

операторы перенаправления оцениваются слева направо. то, что вы сделали неправильно, было поставлено 2>&1 во-первых, которое указывает 2 как 1 в настоящее время указывается, какой экран локального терминала, потому что вы не перенаправлены 1 еще. Что вам нужно сделать, это следующее:

2>/dev/null 1>/dev/null google-chrome &

или

2>/dev/null 1>&2 google-chrome &

размещение операторов перенаправления по отношению к команде не имеет значения. Вы можете положить их до или после команда.

в разделе Redirection справочное руководство Баша говорит:

оператор [n]>&word используется [...] для дублирования дескрипторов выходных файлов

для перенаправления как stderr и stdout до file вы должны использовать форму

&>file

в отношении вашего случая это означает замену

2>&1 1>/dev/null

С

&>/dev/null

кажется, что синтаксис другой:

./a.out 1>/dev/null 2>&1 &

см. устройства для FD = 2 при ./a.out 1>/dev/null 2>&1 и ./a.out 2>&1 1>/dev/null &

1) FD=2 указывает на /dev / null

>./a.out 1>/dev/null 2>&1 &
[1] 21181
>lsof -p `pidof a.out`
COMMAND   PID            USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
a.out   21181 xxxxxxxxxxxxxxx    0u   CHR 136,43      0t0        46 /dev/pts/43
a.out   21181 xxxxxxxxxxxxxxx    1w   CHR    1,3      0t0      3685 /dev/null
a.out   21181 xxxxxxxxxxxxxxx    2w   CHR    1,3      0t0      3685 /dev/null

2) FD=2 указывает на /dev/pts / 43

>./a.out 2>&1 1>/dev/null &
[1] 25955
>lsof -p `pidof a.out`
COMMAND   PID            USER   FD   TYPE DEVICE SIZE/OFF      NODE NAME
a.out   25955 xxxxxxxxxxxxxxx    0u   CHR 136,43      0t0        46 /dev/pts/43
a.out   25955 xxxxxxxxxxxxxxx    1w   CHR    1,3      0t0      3685 /dev/null
a.out   25955 xxxxxxxxxxxxxxx    2u   CHR 136,43      0t0        46 /dev/pts/43