Risposte:
È possibile ottenere i descrittori di file standard di tale processo, ad esempio stdout
:
tail -f /proc/<pid>/fd/1
# ls -la /proc/24510/fd/1 lrwx------ 1 root root 64 Oct 31 08:34 /proc/24510/fd/1 -> socket:[444026]
Ci sono alcune opzioni qui. Uno è di reindirizzare l'output del comando su un file, quindi utilizzare tail
per visualizzare le nuove linee che vengono aggiunte a quel file in tempo reale.
Un'altra opzione è quella di avviare il programma all'interno di screen
, che è una sorta di applicazione terminale testuale. Le sessioni dello schermo possono essere collegate e staccate, ma sono nominalmente pensate solo per essere utilizzate dallo stesso utente, quindi se si desidera condividerle tra utenti.
Altrimenti, se lo desideri, puoi tracciare il processo e vedere cosa sta facendo strace
:
strace -e trace=open -p 22254 -s 80 -o output.txt
-p PID
: Allegare al processo con l'ID processo PID e iniziare la traccia.-s SIZE
: Specifica la dimensione massima della stringa da stampare (il valore predefinito è 32).-o filename
: Scrivi l'output di traccia nel nome file del file anziché sullo schermo (stderr).sudo
con strace per collegarsi a un processo e utilizzare in -o ~/output.txt
modo che il file venga lasciato nella cartella principale.
È possibile utilizzare questi comandi indicati di seguito per collegare un processo in esecuzione su un altro terminale:
retty
(Pagina man: retty )reptyr
screen
Esempio:
screen -S PID
retty $(pgrep PID)
reptyr PID
sudo apt-get install retty
ma ci sono alcune limitazioni con retty. Dai un'occhiata alla pagina man menzionata nella risposta.