명령을 찾지 못한 후 오랜 지연이 발생하는 이유는 무엇입니까?

명령을 찾지 못한 후 오랜 지연이 발생하는 이유는 무엇입니까?

종종 ls와 같은 명령을 잘못 입력하면(예: "s"를 입력하기 전에 Enter 키를 누름) 터미널에 다음이 표시된 후 오랜(~2초) 지연이 발생합니다.

bash: l: command not found...

잘못된 비밀번호를 입력한 후에도 비슷한 지연이 발생하는 이유를 이해할 수 있습니다.잘못된 비밀번호를 입력하면 왜 큰 지연이 발생합니까?. 그런데 인식할 수 없는 명령 후에 왜 지연이 발생합니까? 이것도 영향이 있나요 FAIL_DELAY?/etc/login.defs

답변1

약간의 조사 끝에 발견했습니다.이것:

  • 명령으로 찾을 수 없는 패키지를 제거한 다음 $>yum remove command-not-found다시 설치해 보십시오 >$yum install command-not-found(시스템에 설치된 경우에만 해당).

도움이 되지 않으면 다음을 시도해 보세요.

  • 파일 에 다음을 추가하세요 ~/.bashrc.

    unset command_not_found_handle

답변2

적어도 Fedora에서 내가 찾은 최고의 솔루션은 구성 파일을 수정하는 것입니다.
/etc/PackageKit/CommandNotFound.conf

설치할 패키지를 검색하는 데 가장 큰 지연이 발생하기 때문에 SoftwareSourceSearch=true수정 하는 경우SoftwareSourceSearch=false

지연 시간은 거의 0에 가깝고 오타에 대한 경고도 계속 표시되므로 유용할 수 있습니다.

답변3

Fedora는 비슷한 것을 사용합니다.

이 기능만 제거하려면 다음을 사용하세요.

yum remove PackageKit-command-not-found

답변4

제 경우에는 /usr/libexec/pk-command-not-found에 있는 일부 알려진 프록시 버그 때문이었습니다.

Failed to search for file: cannot update repo 'updates':
Cannot prepare internal mirrorlist:
Curl error (28): Timeout was reached for https://mirrors.fedoraproject.org/metalink?repo=updates-released-f28&arch=x86_64 
[Connection timed out after 30002 milliseconds]

bare 컬 명령을 사용하여 정확히 동일한 URL을 다운로드하면 즉시 성공하므로 내 프록시 구성이 정확합니다.

pk-command-not-found 프로세스에 프록시 구성이 있는지 확인했습니다.

tr  '\0' '\n' < /proc/$(pgrep -f pk-command-not-found)/environ | grep -i proxy

그러나 알 수 없는 이유로 사용하지 않습니다.

https://bugzilla.redhat.com/show_bug.cgi?id=1553368

관련 정보