Pregunta

Tengo el PID de un proceso que se ejecuta en FreeBSD. ¿Cómo se obtiene el directorio actual?

¿Fue útil?

Solución

Puede obtener el número de i-nodo del directorio de trabajo actual con

fstat -p $PID

Parece que lsof le dará una forma legible por humanos del directorio de trabajo actual, pero no tenemos que instalar en cualquiera de los equipos locales de FreeBSD, por lo que no se puede verificar eso.

Otros consejos

fstat puede encontrar el número de i-nodo y el sistema de archivos, y encontrar puede encontrar el directorio correcto.

Prueba esto:

fstat -p $$|perl -ane '$F[3] eq "wd" && system("find",$F[4],"-xdev","-inum",$F[5],"-print");'

Cuando se ejecuta como no root, encontrará probablemente salida de un buen número de "Permiso denegado" mensajes que se pueden evitar mediante la inserción de close(STDERR); en frente de la $F[3] (después de la primera comilla simple).

En versiones más recientes de FreeBSD, puede utilizar procstat -f $PID, que muestra el nombre de ruta si todavía está en el nombre del núcleo caché.

/ proc / PID $ / cwd contiene un enlace simbólico a los programas de directorio de trabajo actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top