Come determinare il percorso di un binario di un processo?

23

C'è un modo per scoprire la directory / posizione del disco da cui è stato avviato un processo? Sono consapevole del / proc mount ma non proprio dove guardarlo dentro.

    
posta SuperJumbo 16.06.2011 - 12:47
fonte

4 risposte

28

Il modo /proc sarebbe di esaminare il link exe nella directory corrispondente al pid.

Facciamo un esempio con update-notifier :

Trova il pid, che è 15421 in questo esempio:

egil@gud:~$ ps x | grep update-notifier
 2405 pts/4    S+     0:00 grep update-notifier
15421 ?        Sl     0:00 update-notifier

Cerca il link simbolico:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to '/usr/bin/update-notifier'
    
risposta data Egil 16.06.2011 - 12:56
fonte
11

Forse which è quello che stai cercando. Ad esempio, sul mio sistema

which firefox 

ritorna

/usr/bin/firefox

Vedi anche Trova il percorso dell'applicazione in esecuzione su Solaris, Ubuntu, Suse o Redhat Linux .

    
risposta data N.N. 16.06.2011 - 12:51
fonte
3

Se disponi di un ID di processo disponibile, puoi utilizzare:

readlink -f /proc/$pid/exe

(sostituisci $pid con l'ID di processo di un processo)

Se il processo non è di tua proprietà, dovrai mettere sudo davanti a esso.

Un esempio per determinare la posizione del comando firefox :

  1. L'output di ps ax -o pid,cmd | grep firefox :

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. 28179 è l'ID del processo, quindi devi eseguire:

    readlink -f /proc/28179/exe
    

    quali uscite:

    /usr/bin/firefox
    
risposta data Lekensteyn 16.06.2011 - 12:57
fonte
1

Premi Ctrl + Alt + T per andare a un terminale e digita:

ls -al /proc/{pid}/fd  

e quindi controlla l'output

Questo elencherà tutti i file associati al processo ...

    
risposta data xiaoyifang 04.07.2018 - 07:24
fonte

Leggi altre domande sui tag