Mi compañero de trabajo tiene una computadora de escritorio /home
compartida en nuestro servidor de archivos. He desarrollado un script de Perl para sshfs
montar un determinado directorio en otro host SSH que funciona bien en mi computadora portátil.
En su computadora, el script no desmonta sshfs
al final y deja impuro el punto de montaje. No encontré ninguna forma de recuperar el punto de montaje que no sea reiniciar. Después de algunas pruebas, descubrí que la diferencia entre nuestras configuraciones es que la suya /home
está en NFS. En su /tmp
obra funciona a la perfección.
Después del montaje, durante la operación del script, todo está bien. Pero cuando matar el sshfs
proceso que está catalogado como <defunc>
por ps
hasta que el proceso padre (el script de Perl) salidas. Cuando se ejecuta un sshfs
comando sin procesar en el shell, el problema aún ocurre.
Una ls -dl
salida para el punto de montaje se ve así (como se recuerda, no tengo una copia real de la salida del shell a la mano):
? 1 ? ? 4096 Feb 9 15:37 file_archive/
(solo signos de interrogación para la mayoría de la información, al menos todos los detalles del permiso)
El montaje sshfs todavía aparece en la lista, mount
pero una operación de desmontaje falla con permiso de error denegado incluso cuando se hace como root
.
Busqué en Google pero solo encontré muchas comparaciones entre sshfs y NFS para ejecutar sistemas de archivos de red. ¿Cómo puedo hacer un montaje / desmontaje sshfs en el directorio NFS de forma segura?
umount
debe fallar cuando se ejecuta como usuario no root.root_squash
opción. Por lo tanto, root no tiene autoridad en su directorio de origen. Puede apagarlo,root_squash
pero probablemente sea más seguro montarlo en otro lugar.umount
ofusermount -u
no funciona, cuando el directorio se usa en alguna parte. Así quecd
fuera del directorio antes de usarfusermount -u
o usarlsof /my/local/mountpoint
Simplemente elimine el proceso usando pkill y luego desmonte la ruta de la carpeta montada.
fuente
Parece que este comando funciona en OS X.
fuente