Existe uma maneira infalível em nível de usuário para forçar o encerramento de conexões sshfs?

Existe uma maneira infalível em nível de usuário para forçar o encerramento de conexões sshfs?

Quero que sshfsas conexões sejam encerradas depois de algum tempo, no máximo uma hora, e isso significa lançar o atcomando fusermount -uno mesmo comando ou script que utilizo para iniciar a sshfsmontagem.

No entanto, percebo que fusermountpode falhar se os arquivos estiverem em uso, embora eu queira que o atcomando funcione independentemente de ainda haver arquivos abertos na conexão ou não.

Na minha experiência, a única maneira confiável é executar os fusermountcomandos como root ou encerrar a sshfsconexão por meio do killcomando.

Existe alguma outra maneira de forçar uma desconexão sem estar executando como root? O problema é que posso não estar no terminal quando os arquivos ainda estão abertos, mas por uma questão de segurança a conexão deve ser interrompida, a menos que eu cancele o atcomando.

Responder1

Se você quiser apenas liberar o ponto de montagem e não se importar em encerrar a conexão SSH, poderá executar o fusermount -z /mount/point. Isso executa uma desmontagem lenta: o ponto de montagem não está mais associado à montagem, mas a montagem não desaparece até que todos os arquivos abertos nessa montagem sejam fechados.

Se você deseja apenas fechar a conexão SSH e não se importa com a montagem, você pode simplesmente encerrar o processo do servidor SFTP. Essa é a beleza do FUSE: elimine o processo que oferece o serviço e ele desaparece. Uma montagem não pode bloquear um recurso do sistema. Os processos que tentarem acessar os sistemas de arquivos receberão um erro (ENOTCONN “O endpoint de transporte não está conectado”).

Se quiser encerrar os processos que possuem arquivos abertos nesse sistema de arquivos, você pode usar ofusercomando (sem relação com FUSE exceto pelo F ser a primeira letra do “arquivo”).

fuser -k /mount/point

informação relacionada