원격 파일 시스템(예: sshfs
또는 ) 을 사용하는 경우 smbfs
네트워크 문제로 인해 파일 시스템이 오래될 수 있습니다. 마운트가 오래된 것인지 확인하기 위해 일반적으로 명령을 사용하여 ls
원격 마운트의 내용을 나열할 수 있는지 확인합니다. 이러한 원격 마운트가 오래되면 ls
명령은 몇 분 후에 다음과 같은 결과가 출력될 때까지 오랫동안 기다립니다.
ls: cannot access '/mnt/remote': Input/output error
ls
이 오류를 기다리는 대신 명령을 중지할 수 있는 방법이 있습니까?동일한 bash 세션에서? 일반 Ctrl+C가 해당 작업을 수행하지 않는 것 같습니다. Bash 쉘을 닫는 것도 가능하지만 권장되지 않습니다. 다른 옵션이 있나요?
답변1
아니요, ls
(또는 다른 파일 작업 프로세스)가 "논스톱 휴면" 프로세스 상태에 있기 때문에 SIGKILL
그 무엇도 이를 방해할 수 없습니다.
원격 파일 시스템을 마운트할 때 시간 초과 값을 낮출 수 있습니다. sshfs
가지다ServerAliveInterval
그리고ServerAliveCountMax
.
답변2
누군가를 죽이려고 하지 마십시오 ls
.문제의 근원을 해결하라: 더 이상 사용되지 않는 마운트 지점입니다.
제거하세요!
umount
연결이 끊어지면 정상적으로 작동하지 않을 수 있으며 다음을 사용할 수 있습니다 umount -l
.
-l, --게으른
게으른 제거. 이제 파일 계층에서 파일 시스템을 분리하고 더 이상 사용되지 않는 즉시 이 파일 시스템에 대한 모든 참조를 지웁니다.
[...]
umount -l의 권장 사용 사례는 액세스할 수 없는 네트워크 공유로 인해 종료 시 중단되는 것을 방지하는 반면, 일반적인 umount는 서버 다운이나 네트워크 파티션으로 인해 중단되는 것을 방지하는 것입니다.
sudo umount -l /path/to/mountpoint
umount
먼저 "normal"을 시도 하고 그것이 실패하면 `umount -l을 시도할 수 있습니다 . 예를 들면 다음과 같습니다:
sudo timeout 10 umount /path/to/mountpoint \
|| sudo umount -l /path/to/mountpoint
답변3
모든 ls
프로세스를 중지합니다.
pkill --signal SIGKILL ls