Pregunta:
Estoy usando soportes SSHFS desde mi computadora portátil a un servidor central.
Obviamente, el montaje SSHFS se rompe después de una desconexión prolongada (por ejemplo, durante la suspensión), lo que provoca que se agote el tiempo de espera de la conexión SSH subyacente.
¿Hay alguna manera de hacer que los montajes SSHFS sobrevivan a desconexiones de larga duración (> 5 min) o incluso que se vuelvan a marcar con una IP diferente?
Respuesta:
Utilice -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3
La combinación ServerAliveInterval=15,ServerAliveCountMax=3
hace que los errores de E / S ServerAliveInterval=15,ServerAliveCountMax=3
después de un minuto de interrupción de la red. Esto es importante pero en gran parte indocumentado. Si la opción ServerAliveInterval
se deja en el valor predeterminado (por lo tanto, sin la verificación activa), los procesos que experimentan un bloqueo de E / S parecen dormir indefinidamente, incluso después de que sshfs se reconnect
. Considero que este es un comportamiento inútil.
En otras palabras, lo que sucede en -o reconnect
sin asignar ServerAliveInterval
es que cualquier E / S tendrá éxito o colgará la aplicación indefinidamente si el ssh se vuelve a conectar debajo. Como resultado, una aplicación típica se bloquea por completo. Si desea permitir que I / O devuelva un error y reanude la aplicación, necesita ServerAliveInterval=1
o mayor.
ServerAliveCountMax=3
es el valor predeterminado de todos modos, pero me gusta especificarlo para facilitar la lectura.