Où est dirigée la STDOUT d'un programme désavoué?

11

Pour faire suite à cette question , je voudrais savoir où disown -hsont redirigés les STDOUT et STDERR d'un programme sur lequel j'ai exécuté .

Thrawn
la source

Réponses:

10

disownne 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 disownprogrammez 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).

sleske
la source
Selon sa question précédente, le fait est qu'il a fermé ce terminal précédent. Comment peut-il alors obtenir la sortie?
Gnoupi
@Gnoupi: Je ne pense pas qu'il y ait moyen de récupérer la sortie. Au moins, je n'ai jamais entendu parler d'aucune façon.
sleske
Merci pour le commentaire Gnoupi :-) En fait, la sortie est introuvable. Je continuerai à chercher :-)
Thrawn
1
c'est vraiment la réponse: le reniement ne change rien; vous devez configurer une capture ou une redirection au démarrage du processus . si vous en avez besoin par la suite, gdb est votre (seul) ami: superuser.com/questions/50058/…
quack quixote
@quack - Je dirais que la question doit donc être refactorisée pour mettre l'accent sur le cas d'utilisation réel, plutôt que seulement sur l'outil. Dans la forme actuelle (centrée sur le reniement), c'est bien la bonne réponse. Mais à partir du contexte, avec la question précédente, l'utilisateur veut simplement récupérer la sortie, et dans ce cas, votre lien est la réponse.
Gnoupi