Est-il possible d'arrêter la sortie d'une commande après bg?


8

Supposons que cette situation

wget http://file 

wget commence à télécharger le fichier.

Je l'ai mis en arrière-plan.

^Z
bg

La commande passe en arrière-plan.

Mais sa sortie est toujours sur la console également - si la console est toujours ouverte.

Est-il possible d'arrêter la sortie de la commande?

Wget n'est qu'un exemple; pensez à une commande qui écrit beaucoup de sortie.

À la console, je sais qu'il est possible de faire bgpuis de fermer le terminal et d'en ouvrir un autre, mais que faire si je n'ai qu'un seul terminal disponible et aucun pseudo-terminal?


Réponses:


2

Voici une solution qui redirige réellement la sortie d'une commande pendant son exécution: /superuser/732503/redirect-stdout-stderr-of-a-background-job-from-console-to-a- fichier journal

Pour une solution plus utilisable dans un scénario de tous les jours d'utilisation d'un terminal, vous pouvez wget -o log http://file & exécuter wgeten arrière-plan et écrire sa sortie à la logplace de votre terminal. Bien sûr, vous ne verrez aucune sortie dans ce cas (même si vous avez exécuté wgeten premier plan), mais vous pouvez tail -f logregarder la sortie à mesure qu'elle grandit.


2

Voulez-vous dire que vous souhaitez que wget (ou un autre cmd) fonctionne en arrière-plan sans générer de messages sur la console? Si telle est la question, vous pouvez essayerredirection

$ wget http://file > /dev/null

le cmd ci-dessus redirigera le stdoutvers /dev/nullet vous ne verrez pas les messages sauf les messages d'erreur. Si vous ne voulez pas non plus voir de messages d'erreur, essayez ceci

$ wget http://file 1>/dev/null 2>&1

Vous pouvez google redirectionpour des informations plus détaillées.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.