Comment rediriger toutes les sorties vers/dev / null?
Je veux exécuter un programme (google-chrome) en arrière-plan, mais l'empêcher de sortir des messages vers le terminal.
J'ai essayé de faire ceci:
google-chrome 2>&1 1>/dev/null &
Cependant, le terminal se remplit toujours sans messages comme:
[5746:5746:0802/100534:erreur: object_proxy.cc(532)] échec de l'appel de la méthode: org.chrome.Mtpd.EnumerateStorag...
Ce que je fais mal? Comment rediriger Tout la sortie vers /dev/null
?
3 réponses
Les opérateurs de Redirection sont évalués de gauche à droite. ce que vous avez mal fait a été mis 2>&1
en premier, qui pointe 2
au même endroit que {[4] } est actuellement pointé vers lequel est l'écran du terminal local parce que vous n'avez pas encore redirigé 1
. Ce que vous devez faire est l'une des opérations suivantes:
2>/dev/null 1>/dev/null google-chrome &
Ou
2>/dev/null 1>&2 google-chrome &
Le placement des opérateurs de redirection par rapport à la commande n'a pas d'importance. Vous pouvez les mettre avant ou après la commande.
Dans la section Redirection
le manuel de référence de bash dit:
L'opérateur
[n]>&word
est utilisé [...] pour dupliquer les descripteurs de fichier de sortie
Pour rediriger les deux stderr
et stdout
à file
, vous devez utiliser le formulaire
&>file
En ce qui concerne votre cas, cela signifie substitut
2>&1 1>/dev/null
Avec
&>/dev/null
Il semble que la syntaxe soit différente:
./a.out 1>/dev/null 2>&1 &
Afficher les périphériques pour FD = 2 sont différentes lorsque ./a.out 1>/dev/null 2>&1
et ./a.out 2>&1 1>/dev/null &
1) FD = 2 points vers / 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 points vers / 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