Pour faire suite à cette question , je voudrais savoir où disown -h
sont redirigés les STDOUT et STDERR d'un programme sur lequel j'ai exécuté .
Pour faire suite à cette question , je voudrais savoir où disown -h
sont redirigés les STDOUT et STDERR d'un programme sur lequel j'ai exécuté .
Réponses:
disown
ne modifie pas les programmes STDOUT / ERR. Ils iront toujours là où vous les avez redirigés (en utilisant >
etc.). Si vous ne les avez pas redirigés, ils continueront d'aller dans le terminal à partir duquel vous avez démarré le programme (jusqu'à ce que vous fermiez ce terminal, auquel cas ils seront supprimés).
Pour illustrer cela, exécutez ceci dans un terminal:
bash -c 'while true; do sleep 1; echo hi; done' &
Cela imprimera "salut" chaque seconde (et vous ennuiera terriblement ;-)). Si vous disown
programmez après le démarrage, les "salut" continueront. Vous devez trouver le PID du shell (en utilisant par exemple ps) et le tuer pour l'arrêter.
Éditer:
Sur la base des commentaires, ce que vous voulez vraiment faire est peut-être de récupérer la sortie du programme après l'avoir disown
édité et fermé le terminal dans lequel il était exécuté. Ceci est expliqué dans cette question: Nohup distant après le fait avec tcsh ( grâce à Quack Quichotte).