오래된 마운트 지점을 나열하는 동안 "ls" 명령이 중단됩니다. 어떻게 죽이거나 멈추나요?

오래된 마운트 지점을 나열하는 동안 "ls" 명령이 중단됩니다. 어떻게 죽이거나 멈추나요?

원격 파일 시스템(예: 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

관련 정보