Как перенаправить все выходные данные в /dev / null?
Я хочу запустить программу (google-chrome) в фоновом режиме, но не позволяйте ей выводить какие-либо сообщения на терминал.
Я пытался сделать это:
google-chrome 2>&1 1>/dev/null &
однако терминал по-прежнему заполняется без сообщений типа:
[5746:5746:0802/100534:ошибка: object_proxy.cc(532)] не удалось вызвать метод: org.хром.Управления ГДП.EnumerateStorag...
что я делаю не так? Как мне перенаправить все вывод /dev/null
?
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