Tengo un xmms2d
proceso en ejecución, pero dos posibles archivos ejecutables (en diferentes directorios, ambos en la ruta ejecutable) que podrían haberlo generado. Sospecho que uno de ellos está dañado, porque a veces este programa funciona y otras no. El proceso en ejecución ahora funciona, así que quiero eliminar (o renombrar) el otro.
ps ax|grep "xmms"
vuelve 8505 ? SLl 2:38 xmms2d -v
sin información de ruta. Dado el PID, ¿podría averiguar si se ejecutó desde /usr/bin/xmms2d
o /usr/local/bin/xmms2d
?
¡Gracias!
ps -C xmms
debería hacer que tu grep sea obsoleto.Respuestas:
Prueba esto:
O si no desea analizar la salida de
ls
, simplemente haga:o
fuente
Si está ejecutando Solaris, la forma es ligeramente diferente de la sugerida por Linux:
Si desea conocer el directorio de trabajo actual de los procesos en ejecución, puede usar:
p.ej:
fuente
Comienzo el mousepad desde el shell:
mira, de donde viene:
Comience con la ruta:
mira a través de ps:
Como vemos, el que se invoca sin ruta se muestra sin ruta, y comienza con la RUTA, y por lo tanto se encuentra por
Tan simple como eso, ¿no? ¡Espere! ¿Qué pasa si inicio mousepad desde el menú? Bueno, podría especificarse con o sin usar la configuración de RUTA. Lo intenté. Un inicio normal conduce a un simple 'mousepad' en
ps v -C
. Como ~ / bin es la primera parte de mi RUTA, creo un muñeco allí y, voila, el muñeco se inicia desde el menú.Pero, ¿qué pasa si inicia un programa que se elimina a sí mismo? Que no encontrará el programa eliminado e informará de uno incorrecto, si hay un segundo en la ruta.
Entonces esa es una condición de carrera. Si sabe que sus programas no se eliminan o no se mueven mientras investiga su ubicación,
ps v -C NAME
ywhich NAME
deberían funcionar bastante bien.fuente
./someexecutable
en ambos?Continúe y elimine ambos archivos (sin la opción force -f). ¡El archivo que se elimina es el que no se estaba ejecutando!
El bloqueo de archivos ejecutables del sistema no le permitirá eliminar ningún archivo que se esté ejecutando actualmente.
fuente
init
, que siempre se están ejecutando, se actualizan? No puede modificar un ejecutable en ejecución.