Watch at EaseHistorias. Respuestas. Perspectiva.

Tecnología · GUÍA PRÁCTICA

¿Linux muestra “getcwd() failed”? Demuestra que el directorio fue desvinculado antes de reiniciar

Un directorio nuevo con el mismo nombre no es el objeto que conserva el proceso. Guarda el caller, sal del cwd obsoleto y rastrea quién lo quitó.

Mapa de identidad del cwd desvinculado
Ilustración original: objeto, entrada ausente y reemplazo homónimo. Watch at Ease

Un directorio nuevo con el mismo nombre no es el objeto que conserva el proceso. Guarda el caller, sal del cwd obsoleto y rastrea quién lo quitó.

Linux getcwd devuelve ENOENT si el cwd fue desvinculado. El proceso puede conservar el objeto tras quitar su pathname.

1. Conserva el caller que falla

Guarda comando, error, PID, padre, usuario, shell o servicio, namespace de contenedor o montaje y el cwd mostrado. El éxito desde otra shell no describe al caller original.

No reinicies ni limpies recursivamente primero: perderías la evidencia que separa cwd desvinculado, montaje ausente, padre inaccesible y fallo de aplicación.

2. Demuestra pathname e identidad

Registra pwd -P y cd . en la shell afectada. En Linux, getcwd devuelve ENOENT si el cwd fue desvinculado; con permiso, /proc/PID/cwd y su marca deleted apoyan el diagnóstico.

Compara la vista del proceso con la ruta actual. Un directorio recreado con el mismo texto es otro objeto; registra identidad stat, montaje y namespace.

3. Recupérate en un directorio vivo

Usa cd -- a una ruta absoluta verificada y confirma pwd -P. Esto repara el contexto, pero no explica la desaparición.

Para servicios o workers, conserva evidencia antes de cambiar configuración o reiniciar. Si falta un montaje, restáuralo en el mismo namespace; no crees un directorio local sustituto.

4. Vuelve a entrar de forma explícita

Obtén el target autoritativo de la configuración, entra explícitamente y comprueba dueño, permisos, origen del montaje e identidad.

Repite el comando original en el mismo contexto. Trata cualquier reemplazo con el mismo nombre como un directorio distinto.

5. Rastrea al responsable y evita recurrencia

Correlaciona deployment swaps, limpiezas, políticas temporales, hooks, teardown de contenedor o mantenimiento manual con logs y eventos.

Saca callers del árbol antes de reemplazarlo, usa cwd estable y coordina montajes. Registra evidencia, recuperación y verificación exitosa.

Recuperación getcwd y rastreo de dueño
Ilustración original: salida, reentrada y causa raíz. Watch at Ease