Genstart logning for kørende proces i tmux på zsh uden genstart – Trin-for-trin guide

Hvordan kan logningen genstartes for en kørende proces i en tmux-pane på zsh, efter logfilen ved en fejl er blevet slettet, uden at genstarte processen?

Logningen kan genstartes for en kørende proces i en tmux-pane på zsh ved at oprette en ny logfil, finde proces-ID'et, og bruge gdb til at ændre filbeskrivelsen til den nye logfil, uden at genstarte processen.

Hvordan kan logningen genstartes for en kørende proces i en tmux-pane på zsh, efter logfilen ved en fejl er blevet slettet, uden at genstarte processen?

Hvis logfilen ved en fejl er blevet slettet, men du ønsker at genstarte logningen for en kørende proces i en tmux-pane på zsh uden at genstarte processen, kan du følge disse trin:

  1. Opret en ny logfil:
    touch /path/to/new_logfile.log
  2. Find PID (Process ID) for den kørende proces:
    ps aux | grep [process_name]

    Bemærk: Erstat [process_name] med navnet på din proces.

  3. Brug gdb til at vedhæfte processen og ændre filbeskrivelsen:
    1. Start gdb og vedhæft processen:
      gdb -p [PID]

      Bemærk: Erstat [PID] med den faktiske PID fra trin 2.

    2. Inden i gdb, skift filbeskrivelsen til den nye logfil:
      (gdb) call close([file_descriptor])
      (gdb) call open("/path/to/new_logfile.log", 1)

      Bemærk: Erstat [file_descriptor] med den faktiske filbeskrivelse, som kan findes ved at undersøge processen.

    3. Afslut gdb:
      (gdb) detach
      (gdb) quit

Efter disse trin vil den kørende proces fortsætte med at logge til den nye logfil uden at skulle genstartes.