mc가 천천히 시작됩니다.

mc가 천천히 시작됩니다.

SSH(우분투)를 통해 시스템에 로그인합니다. 최근 명령 프롬프트에서 mc를 직접 시작하면 부팅하는 데 시간이 오래 걸리고 결국 익숙한 두 창 화면이 표시됩니다. 또한 Ctrl-o를 사용하여 명령 프롬프트 하위 쉘에 들어갈 수 없습니다. tmux에서 시작하면 즉시 시작되고 ctrl-o가 제대로 작동합니다.

일부 환경 설정으로 인해 엄청난 일시 정지가 발생하는 것 같지만 정확히 알 수는 없습니다. 누구든지 도와줄 수 있나요?

고마워요, 존

답변1

mc bash가 응답을 기다리는 동안 시간이 초과되었습니다(화면 하단의 명령줄을 위해 분기된 셸). 타임스탬프를 스크롤하여 타임아웃을 확인할 수 있습니다. 에 따르면 man select관련 시스템 호출은 지정된 파일 설명자에 대한 입력을 기다립니다. 성공적인 추적에서 FD 7은 이전에 생성되었으며 pipe()이는 하위 프로세스에 대한 파이프입니다. 성공하면 bash 프롬프트가 jon@sonic:~$파이프에서 성공적으로 읽혀지는 것을 발견했습니다. 결국 어떻게 찾았는지 기억이 안 나네요. 죄송합니다.

검색을 통해 execv작성된 pid가 jon@sonic:~$임을 확인합니다 bash. 그러다가 tmux우연히 시작된 실패 사례의 어딘가를 발견했습니다 .나는 껍질처럼 달리고 싶지 않을 것입니다 mc!tmux

일종의 bash 시작 스크립트가 실행 중이어야 합니다 tmux. 이미 내부에 있으면 실행을 피할 것입니다 tmux. 그래서 mc내부는 괜찮지 tmux만 외부는 그렇지 않습니다.

tmux나는 부터 확실히 할 것이다로그인bash 하위 쉘에 대해 실행되는 스크립트가 아닌 스크립트입니다. 즉, .bash_profile그렇지 않습니다 .bashrc. 내 생각과 일치하는 정보는 다음과 같습니다.https://apple.stackexchange.com/questions/71929/how-to-change-mc-midnight-command-bash-prompt-on-os-x

답변2

고마워요, sourcejedi - 딱 맞는 말을 하셨습니다. 최근 로그인 시 tmux를 자동으로 시작하기 위해 .bashrc에 몇 줄을 추가했습니다. 그 연관성을 깨달았어야 했는데. 이것이 mc 내에서 (ctrl-o를 사용하여) 하위 쉘에 들어갈 수 없는 이유이기도 합니다. 자세한 내용은 tmux를 시작하는 줄은 다음과 같습니다.

# enable autostart of tmux
if [[ "$TERM" != "screen" ]] ; then
# &&  [[ "$SSH_CONNECTION" == "" ]]; then
    # Attempt to discover a detached session and attach 
    # it, else create a new session

    WHOAMI=$(whoami)
    if tmux has-session -t $WHOAMI 2>/dev/null; then
        tmux -2 attach-session -t $WHOAMI
    else
        tmux -2 new-session -s $WHOAMI
    fi
fi

큰 실패입니다. 이제 그것을 .bash_profile로 옮겼고 모든 것이 잘 작동합니다! 감사해요!

(그런데 저는 원래 포스터입니다.. openauth를 사용하여 로그인하지 않아 문제가 발생하여 잘못된/새 계정에 게시되었습니다.)

관련 정보