SSH(우분투)를 통해 시스템에 로그인합니다. 최근 명령 프롬프트에서 mc를 직접 시작하면 부팅하는 데 시간이 오래 걸리고 결국 익숙한 두 창 화면이 표시됩니다. 또한 Ctrl-o를 사용하여 명령 프롬프트 하위 쉘에 들어갈 수 없습니다. tmux에서 시작하면 즉시 시작되고 ctrl-o가 제대로 작동합니다.
mc에서 직접 strace를 실행합니다. http://pastebin.com/raw/br9SBZ9Y
tmux 아래 mc의 strace와 비교: http://pastebin.com/raw/mYE4vMii
일부 환경 설정으로 인해 엄청난 일시 정지가 발생하는 것 같지만 정확히 알 수는 없습니다. 누구든지 도와줄 수 있나요?
고마워요, 존
답변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를 사용하여 로그인하지 않아 문제가 발생하여 잘못된/새 계정에 게시되었습니다.)