일부 명령이 중단됩니다. [닫음]

일부 명령이 중단됩니다. [닫음]

Linux 상자가 있고 SSH를 사용하여 로그인할 수 있습니다. 내 쉘은 입니다 /bin/bash. 결국 bash 쉘 프롬프트가 표시됩니다.

와 같은 bash 내장 명령을 실행할 수 있습니다 echo. (접두사 경로)에서 일부 명령을 실행할 수 있습니다./binls /bin

다른 명령(예:) whoami이 중단된 것 같습니다. CTRL-C를 누르고 bash 프롬프트로 돌아갑니다.

다른 명령은 완전히 중단되고 CTRL-C는 명령을 종료하지 않으며 bash 프롬프트로 돌아가지 않습니다. ls /usr/bin셸을 일시 중지하는 명령의 예입니다.

경로는 다음과 같습니다...누군가가 이 질문을 할 것이라는 것을 알고 있기 때문에...

$ echo $PATH  
/u01/jdk/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/u01/app/oracle/tools/home/oracle/bin

이 문제의 원인은 무엇입니까? 이 문제를 해결하려면 어떻게 해야 합니까?

답변1

derobert는 이미 dmesg댓글에서 언급했습니다. 다음과 같은 절대 경로를 사용하여 실행해 보세요.

/bin/dmesg | /bin/more

디스크 오류처럼 보이는 것이 있는지 확인하십시오. 나열된 디렉토리 중 하나가 PATH실패한 디스크에 있을 수 있습니다. 디스크 오류로 인해 디스크가 멈추면 실패한 읽기 작업이 영원히 재시도되므로 실행할 명령을 검색하는 동안 셸이 정지될 수 있습니다.

최소화를 시도해 볼 수도 있습니다 PATH. 처음에는 그냥 설정하세요.

PATH=/bin:/sbin

이제 정지나 절대 경로를 사용하지 않고 명령을 실행할 수 있으면 /usr/bin해당 경로도 다시 추가하십시오 /usr/sbin.

PATH=/bin:/usr/bin:/usr/sbin:/sbin

이제 절대 경로를 사용하지 않고도 모든 표준 명령을 사용할 수 있습니다. 정지가 더 이상 발생하지 않으면 이제 나머지 디렉터리 검사를 시작할 수 있습니다.

빠른 확인으로 ls명령을 사용할 수 있지만 백그라운드에서 실행하면 명령이 중단되어도 현재 세션을 사용할 수 없게 되는 일이 없습니다. 예를 들어:

ls /u01/jdk/bin &

명령 출력이 표시되면 lsEnter를 한 번만 누르면 프롬프트가 다시 표시됩니다. (백그라운드 명령이 방금 완료되었음을 나타내는 메시지가 셸에서 표시될 수도 있습니다.)

출력이 ls나타나지 않거나 눈에 띄게 불완전한 경우 dmesg명령 출력을 다시 확인하십시오. 이제 커널이 출력 끝에 디스크 I/O 오류를 뿌리고 있음을 알 수 있습니다. 이러한 오류 메시지는 오류가 발생한 디스크 장치를 식별하는 데 사용될 수 있지만 ls명령이 실패한 경로를 정확히 알면 이미 이에 대해 꽤 잘 알고 있을 것입니다.

관련 정보