sshfs 연결을 강제로 종료하는 사용자 수준의 완벽한 방법이 있습니까?

sshfs 연결을 강제로 종료하는 사용자 수준의 완벽한 방법이 있습니까?

sshfs특정 시간(최대 1시간)이 지나면 연결이 종료되기를 원합니다 . 즉, 설치를 시작한 것과 동일한 명령이나 스크립트를 at사용하여 연결을 시작하는 것입니다 .fusermount -usshfs

그러나 파일이 사용 중이 면 연결에 파일이 아직 열려 있는지 여부에 관계없이 명령이 작동하기를 fusermount원하지만 이것이 실패할 수 있다는 것을 알았습니다 .at

내 경험에 따르면 신뢰할 수 있는 유일한 방법은 fusermount명령을 루트로 실행하거나 명령을 sshfs통해 kill연결을 끊는 것입니다 .

루트로 실행하지 않고 강제로 연결을 끊는 다른 방법이 있습니까? 문제는 파일이 아직 열려 있는 동안 터미널에 있을 수 없다는 것입니다. 그러나 안전을 위해 명령을 취소하지 않는 한 연결을 끊어야 합니다 at.

답변1

마운트 지점을 비우고 SSH 연결 종료에 관심이 없다면 다음을 실행할 수 있습니다 fusermount -z /mount/point. 이렇게 하면 마운트 해제가 지연됩니다. 마운트 지점은 더 이상 마운트와 연결되지 않지만 마운트는 다음까지 사라지지 않습니다. 열려 있는 모든 파일이 닫힐 때까지 모두.

SSH 연결만 닫고 마운트에 신경쓰지 않으려면 SFTP 서버 프로세스를 종료하면 됩니다. 이것이 FUSE의 장점입니다. 서비스를 제공하는 프로세스를 종료하면 사라집니다. 마운트는 시스템 리소스를 잠글 수 없습니다. 파일 시스템에 액세스하려고 시도하는 프로세스는 오류(ENOTCONN "전송 끝점이 연결되지 않음")를 수신합니다.

해당 파일 시스템에 파일이 열려 있는 프로세스를 종료하려면 다음을 사용할 수 있습니다.fuser명령(F가 "file"의 첫 글자라는 점을 제외하면 FUSE와 아무 관련이 없습니다).

fuser -k /mount/point

관련 정보