GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie ändere ich die Ausgabeumleitung eines laufenden Prozesses?

Ich weiß, wie man Ausgaben umleitet und wie man sie in Bash unterdrückt. Angenommen, ich habe versehentlich vergessen, den Ausgabeumleitungsteil an den Befehl anzuhängen (z. B. 2>&1 oder > /tmp/mystdout ) und mein Hintergrundprozess läuft schon eine Weile, kann ich noch zu stdout wechseln und stderr werden angeschrieben? Ich möchte die Anwendung wirklich nicht beenden und neu starten.

Um genauer zu sein, wie von Gilles in seinem Kommentar gefragt, möchte ich speziell in diesen Szenarien damit herumspielen:

  • Falsche Ausgabedatei
  • hat vergessen, stderr umzuleiten zu stdout

oder eine Kombination aus beidem

Z.B. Ich habe Apache laufen und kann sehen die Dateideskriptoren:

/proc/8019/fd/0 -> /dev/null
/proc/8019/fd/1 -> /dev/null
/proc/8019/fd/2 -> /var/log/apache2/error.log

Akzeptierte Antwort:

Sie können dies mit Reredirect tun (https://github.com/jerome-pouiller/reredirect/).

reredirect -m /dev/null <PID>

Sie können die anfängliche Ausgabe Ihres Prozesses später wiederherstellen, indem Sie Folgendes verwenden:

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

(<M> und <N> werden durch den vorherigen Start der Weiterleitung bereitgestellt).

README umleiten erklärt auch, wie man auf einen anderen Befehl umleitet oder nur stdout oder stderr umleitet.


Linux
  1. Wie kann ich die Ausgabe eines laufenden Prozesses in einer anderen Bash-Sitzung anzeigen?

  2. Wie kann man sich merken, wie man die Umleitung verwendet?

  3. UNIX / Linux :Wie man die Nettigkeit (Priorität) eines Prozesses ändert

  4. So leiten Sie die Ausgabe eines bereits laufenden Prozesses um

  5. Wie kann ich die Ausgabe von curl -v weiterleiten oder umleiten?

So listen Sie laufende Prozesse in Linux auf

So ändern Sie die Priorität eines Prozesses in Linux

So ändern Sie die Ausgabefarbe von „Echo“ in Linux

Wie kann ich den absoluten Pfad eines laufenden Prozesses erfahren?

Wie bekomme ich nur alle laufenden Prozess-IDs?

So rufen Sie die GID eines laufenden Prozesses programmgesteuert ab