¿Cómo determino la ruta a un binario de un proceso?

23

¿Hay alguna forma de averiguar la ubicación del directorio / disco desde el que se inició un proceso? Soy consciente de la montura / proc, pero no de dónde mirar dentro de ella.

    
pregunta SuperJumbo 16.06.2011 - 10:47

4 respuestas

29

La forma /proc sería inspeccionar el enlace exe en el directorio correspondiente al pid.

Tomemos un ejemplo con update-notifier :

Encuentre el pid, que es 15421 en este ejemplo:

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

Busque el enlace simbólico:

egil@gud:~$ file /proc/15421/exe
/proc/15421/exe: symbolic link to '/usr/bin/update-notifier'
    
respondido por el Egil 16.06.2011 - 10:56
11

Quizás which es lo que estás buscando. Por ejemplo, en mi sistema

which firefox 

regresa

/usr/bin/firefox

Ver también Encuentre la ruta de la aplicación que se ejecuta en Solaris, Ubuntu, Suse o Redhat Linux .

    
respondido por el N.N. 16.06.2011 - 10:51
3

Siempre que tengas una ID de proceso disponible, puedes usar:

readlink -f /proc/$pid/exe

(reemplace $pid por el ID de proceso de un proceso)

Si el proceso no es tuyo, deberás poner sudo delante de él.

Un ejemplo para determinar la ubicación del comando firefox :

  1. El resultado de ps ax -o pid,cmd | grep firefox :

    22831 grep --color=auto firefox
    28179 /usr/lib/firefox-4.0.1/firefox-bin
    
  2. 28179 es la ID del proceso, por lo que debe ejecutar:

    readlink -f /proc/28179/exe
    

    qué salidas:

    /usr/bin/firefox
    
respondido por el Lekensteyn 16.06.2011 - 10:57
1

Presione Ctrl + Alt + T para ir a un terminal y escriba:

ls -al /proc/{pid}/fd  

y luego verifique la salida

Esto mostrará una lista de todos los archivos a los que está asociado su proceso ...

    
respondido por el xiaoyifang 04.07.2018 - 05:24

Lea otras preguntas en las etiquetas