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>&1ou > /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ù stdoutet où stderrj'é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
stderrversstdout
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