GNU/Linux >> Linux Esercitazione >  >> Linux

Collega a un output dei processi per la visualizzazione

Penso di avere una soluzione più semplice qui. Basta cercare una directory il cui nome corrisponda al PID che stai cercando, sotto lo pseudo-filesystem accessibile sotto /proc sentiero. Quindi, se hai un programma in esecuzione, il cui ID è 1199, cd in esso:

$ cd /proc/1199

Quindi cerca il fd directory sottostante

$ cd fd

Questo fd contiene gli oggetti descrittori di file che il tuo programma sta usando (0:stdin, 1:stdout, 2:stderr) e solo tail -f quello di cui hai bisogno - in questo caso, stdout):

$ tail -f 1

Stavo cercando esattamente la stessa cosa e ho scoperto che puoi fare:

strace -ewrite -p $PID

Non è esattamente ciò di cui avevi bisogno, ma è abbastanza vicino.

Ho provato l'output di reindirizzamento, ma non ha funzionato per me. Forse perché il processo stava scrivendo su un socket, non lo so.


Per me, questo ha funzionato:

  1. Accedi come proprietario del processo (anche root viene negato il permesso)

    ~$ su - process_owner
    
  2. Coda il descrittore di file come menzionato in molte altre risposte.

    ~$ tail -f /proc/<process-id>/fd/1 # (0: stdin, 1: stdout, 2: stderr)
    

Ci sono alcune opzioni qui. Uno consiste nel reindirizzare l'output del comando a un file, quindi utilizzare 'tail' per visualizzare le nuove righe che vengono aggiunte a quel file in tempo reale.

Un'altra opzione è avviare il programma all'interno di 'schermo', che è una sorta di applicazione terminale basata su testo. Le sessioni dello schermo possono essere collegate e scollegate, ma nominalmente sono pensate solo per essere utilizzate dallo stesso utente, quindi se vuoi condividerle tra utenti, è un gran rompipalle.


Linux
  1. Come creare una directory condivisa per tutti gli utenti in Linux

  2. Tutorial sul comando cd di Linux per principianti (8 esempi)

  3. Output di quale comando utilizzato per l'input su Cd?

  4. A cosa servono gli inode?

  5. Colorare l'output della coda con Sed?

Crea directory home per utenti esistenti in Linux

Spiegazione della struttura della directory di Linux per i principianti

Comandi per la gestione dei processi in Linux

Colora l'output della coda

Alternativa per tail -f che segue il nome del file

ls si blocca per una determinata directory