Un archivo se puede eliminar mientras está abierto por un proceso. Cuando esto sucede, la entrada del directorio se elimina, pero el archivo en sí (el inodo y el contenido) se quedan atrás; el archivo solo se elimina realmente cuando no tiene más enlaces y ningún proceso lo abre.
NFS es un protocolo sin estado: las operaciones se pueden realizar independientemente de las operaciones anteriores. Incluso es posible que el servidor se reinicie, y una vez que vuelva a estar en línea, los clientes continuarán accediendo a los archivos como antes. Para que esto funcione, los archivos deben ser designados por sus nombres, no por un identificador obtenido al abrir el archivo (que el servidor olvidaría cuando se reinicie).
Ponga los dos juntos: ¿qué sucede cuando un cliente abre un archivo y lo elimina? El archivo debe seguir teniendo nombre, para que el cliente que lo tiene abierto pueda acceder a él. Pero cuando se elimina un archivo, se espera que no exista más archivo con ese nombre después. Por lo tanto, los servidores NFS convierten la eliminación de un archivo abierto en un cambio de nombre: se cambia el nombre del archivo .nfs…
( .nfs
seguido de una cadena de letras y dígitos).
No puede eliminar estos archivos (si lo intenta, todo lo que sucede es que .nfs…
aparece un nuevo con un sufijo diferente). Eventualmente desaparecerán cuando el cliente que tiene el archivo abierto lo cierre. (Si el cliente desaparece antes de cerrar el archivo, puede pasar un tiempo hasta que el servidor se dé cuenta).
ps -Af | grep 'indicator-services-start' | awk '{ print $2 }' | xargs kill
acrontab -e
.