GNU/Linux >> Tutoriels Linux >  >> Linux

Comment changer la redirection de sortie d'un processus en cours d'exécution ?

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 mon processus d'arrière-plan est déjà en cours d'exécution depuis un certain temps, puis-je toujours changer pour où stdout et stderr sont en cours d'écriture ? J'aimerais vraiment ne pas tuer et redémarrer l'application.

Pour être plus précis comme demandé par Gilles dans son commentaire, j'aimerais le tripoter dans ces scénarios en particulier :

  • fichier de sortie incorrect
  • oublié de rediriger stderr vers stdout

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

Réponse acceptée :

Vous pouvez le faire en utilisant la redirection (https://github.com/jerome-pouiller/reredirect/).

reredirect -m /dev/null <PID>

Vous pouvez restaurer la sortie initiale de votre processus ultérieurement en utilisant quelque chose comme :

reredirect -N -O <M> -E <N> <PID>

(<M> et <N> sont fournis par le lancement précédent de la redirection).

rediriger README explique également comment rediriger vers une autre commande ou rediriger uniquement stdout ou stderr.


Linux
  1. Comment afficher la sortie d'un processus en cours d'exécution dans une autre session Bash ?

  2. Linux - Comment obtenir l'heure de l'horloge murale d'un processus en cours d'exécution ?

  3. Comment changer le nom d'hôte ?

  4. UNIX / Linux :Comment changer la gentillesse (priorité) d'un processus

  5. Comment changer le nom d'hôte sur Ubuntu

Comment répertorier les processus en cours d'exécution sous Linux

Comment changer la priorité d'un processus sous Linux

Comment changer la couleur de sortie de 'Echo' sous Linux

Comment puis-je connaître le chemin absolu d'un processus en cours d'exécution ?

Comment obtenir uniquement tous les identifiants de processus en cours d'exécution ?

Comment récupérer par programmation le GID d'un processus en cours d'exécution