Je sais comment rediriger la sortie et comment les supprimer dans bash. Maintenant, supposons que j'ai accidentellement oublié d'ajouter la partie de redirection de sortie à la commande (par exemple, 2>&1
ou > /tmp/mystdout
) et que mon processus d'arrière-plan est déjà en cours d'exécution depuis un certain temps, puis-je quand même changer où stdout
et où stderr
j'écris? Je voudrais vraiment ne pas tuer et redémarrer l'application.
Pour être plus précis comme l'a demandé Gilles dans son commentaire, je voudrais en jouer dans ces scénarios en particulier:
- fichier de sortie incorrect
- oublié de rediriger
stderr
versstdout
ou une combinaison des deux
Par exemple, j'ai Apache en cours d'exécution et je peux voir les descripteurs de fichiers:
/proc/8019/fd/0 -> /dev/null
/proc/8019/fd/1 -> /dev/null
/proc/8019/fd/2 -> /var/log/apache2/error.log