¿Cómo puedo saber la ruta absoluta de un proceso en ejecución?
Si tengo varias copias de la misma aplicación en el disco, y sólo una se está ejecutando, como puedo ver con ps
, ¿cómo puedo saber la ruta absoluta para distinguirla de las demás?
Si tengo varias copias de la misma aplicación en el disco, y sólo una se está ejecutando, como puedo ver con ps
, ¿cómo puedo saber la ruta absoluta para distinguirla de las demás?
ps auxwwwe
Fuente: https://serverfault.com/questions/62322/getting-full-path-of-executables-in-ps-auxwww-output
lsof es una opción. Puede probar algo como lo siguiente:
lsof -p PROCESS_ID
Esto listará todos los archivos abiertos por el proceso incluyendo la ubicación real del ejecutable. A continuación, es posible añadir unos cuantos awk, cut, grep, etc. para encontrar la información que se busca.
Como ejemplo, ejecuté los siguientes comandos para identificar de dónde venía mi proceso ‘java’:
lsof -p 12345 | awk ‘{print $NF}’ | grep ‘java$’
La respuesta rápida es utilizar ps
con opciones o la información del sistema de archivos /proc
. Esto normalmente funcionará, pero no está garantizado. En general, no hay una respuesta definitiva y garantizada. Por ejemplo, ¿qué pasa si el archivo que se está ejecutando se borra durante la ejecución, de modo que no hay ruta al archivo?
Vea el FAQ de Unix para un poco más de detalle, particularmente las preguntas 4.3 y 4.4.