일부 사용자가 Tab 키를 눌러 파일 경로를 완성하면 컴퓨터가 완료하는 데 몇 초가 걸립니다. 그들은 bash 쉘을 사용하고 있습니다.
이 사용자의 탭 완성이 중단되는 원인이 정확히 무엇인지 진단하려면 어떻게 해야 합니까?
답변1
Bash에서 실행하여 echo $$
셸의 프로세스 ID를 확인한 다음 Tabbash를 누를 준비를 합니다. 다른 터미널을 열고 실행합니다. strace -p1234
여기서 1234는 bash의 프로세스 ID입니다. strace
bash가 실행한 시스템 호출의 추적을 인쇄합니다. 무슨 일이 일어나고 있는지 완전히 이해하지 못하더라도 일반적으로 시간이 걸리는 것을 이해하는 데 충분합니다. 일반적으로 네트워크 요청이 이루어지거나 대용량 파일에 액세스하는 중입니다. 속도 저하를 피하기 위해 어떤 설정을 변경해야 하는지 파악하는 것이 쉽지 않을 수도 있습니다.
시스템의 보안 설정에 따라 관련 없는 프로세스를 실행하지 못할 수도 있습니다 strace
. 그렇지 않은 경우 strace
bash의 상위로 실행하십시오.
strace -tt -T -o bash.trace bash
완료 시도를 수행한 다음 bash를 종료하고 추적 파일을 확인합니다 bash.trace
. 각 줄의 시작 부분에는 시스템 호출이 시작된 시간을 나타내는 타임스탬프가 있으며, 줄 끝에 있는 꺾쇠 괄호 안의 숫자는 시스템 호출에 걸린 시간입니다.
strace
리눅스 명령어입니다. Linux를 실행하지 않는 경우 시스템에서 적절한 명령( dtrace
, truss
, trace
, ...) 을 찾으십시오.