Come posso conoscere il percorso assoluto di un processo in corso?
Se ho più copie della stessa applicazione sul disco, e solo una è in esecuzione, come posso vedere con ps
, come posso sapere il percorso assoluto per distinguerla dalle altre?
Se ho più copie della stessa applicazione sul disco, e solo una è in esecuzione, come posso vedere con ps
, come posso sapere il percorso assoluto per distinguerla dalle altre?
ps auxwwwe
Fonte: https://serverfault.com/questions/62322/getting-full-path-of-executables-in-ps-auxwww-output
lsof è un'opzione. Puoi provare qualcosa come qui sotto:
lsof -p PROCESS_ID
Questo elencherà tutti i file aperti dal processo inclusa la posizione attuale dell'eseguibile. È poi possibile aggiungere qualche altro comando awk, cut, grep ecc. per trovare le informazioni che si stanno cercando.
Come esempio, ho eseguito i seguenti comandi per identificare la provenienza del mio processo ‘java’:
lsof -p 12345 | awk ‘{print $NF}’ | grep ‘java$’
La risposta rapida è di usare ps
con opzioni o le informazioni sul filesystem /proc
. Questo di solito funziona, ma non è garantito. In generale, non c'è una risposta definitiva e garantita. Per esempio, cosa succede se il file in esecuzione viene cancellato durante l'esecuzione, così che non c'è alcun percorso per il file?
Vedere le FAQ di Unix per un po’ più di dettagli, in particolare le domande 4.3 e 4.4.