Quiero que sshfs
las conexiones finalicen después de un tiempo, una hora como máximo, y esto significa iniciar el at
comando con fusermount -u
el mismo comando o script que uso para iniciar el sshfs
montaje.
Sin embargo, noto que fusermount
puede fallar si los archivos están en uso, aunque quiero que el at
comando funcione ya sea que todavía haya archivos abiertos en la conexión o no.
En mi experiencia, la única forma confiable es ejecutar los fusermount
comandos como root o finalizar la sshfs
conexión mediante el kill
comando.
¿Existe alguna otra forma de forzar una desconexión sin estar ejecutando como root? El problema es que es posible que no esté en la terminal cuando los archivos aún estén abiertos, pero por razones de seguridad la conexión debe interrumpirse a menos que cancele el at
comando.
Respuesta1
Si solo desea liberar el punto de montaje y no le importa terminar la conexión SSH, puede ejecutar fusermount -z /mount/point
. Esto realiza un desmontaje diferido: el punto de montaje ya no está asociado con el montaje, pero el montaje no desaparece hasta que se cierran todos los archivos abiertos en ese montaje.
Si solo desea cerrar la conexión SSH y no le importa el montaje, simplemente puede finalizar el proceso del servidor SFTP. Esa es la belleza de FUSE: finaliza el proceso que ofrece el servicio y desaparece. Un montaje no puede bloquear un recurso del sistema. Los procesos que intenten acceder a los sistemas de archivos obtendrán un error (ENOTCONN "El punto final de transporte no está conectado").
Si desea eliminar los procesos que tienen archivos abiertos en ese sistema de archivos, puede usar elfuser
comando (sin relación con FUSE excepto que la F es la primera letra de "archivo").
fuser -k /mount/point