화면: "로컬 쉘을 사용하여 /my/path/to/zsh를 실행할 수 없습니다."

화면: "로컬 쉘을 사용하여 /my/path/to/zsh를 실행할 수 없습니다."

홈 디렉토리에 컴파일된 Zsh 쉘에서 screen을 실행하려고 할 때마다 다음 오류가 발생합니다.

> screen
Cannot exec '/my/path/to/zsh/bin/zsh'

cshZ 셸은 완벽하게 작동하며, 예를 들어 시스템 셸을 사용하여 호출하면 화면을 실행할 수 있음 을 확인했습니다 . 나는 보통 다음을 만난다 zsh: exec zsh. 내 시스템에 대한 추가 정보는 다음과 같습니다.

> echo $SHELL
/my/path/to/zsh/bin/zsh

> echo $ZSH_VERSION
5.0.0

> which screen
/usr/bin/screen

> screen --version
Screen version 4.00.03 (FAU) 23-Oct

광산에는 .screenrc두 줄만 있습니다.

escape ^A^A
bind o other

중요한 경우: /my/path/to/zsh/내 홈 디렉터리 아래의 경로를 기호적으로 참조합니다.

고쳐 쓰다

  1. 호출 결과 file:

    > file /my/path/to/zsh/bin/zsh
    > /~/sw/zsh/bin/zsh: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for
    > GNU/Linux 2.6.9, dynamically linked (uses shared libs), 
    > for GNU/Linux 2.6.9, stripped
    
  2. 하지만 나는할 수 있는성공적으로 실행되고 내 쉘에서 들어갑니다 /my/path/to/zsh/bin/zsh. 나는 보통 zsh로 전환한다zshcshexec /my/path/to/zsh/bin/zsh

  3. ls자세한 내용은 다음과 같습니다 ./my/path/to/zsh/bin/zsh

    -rwxr-xr-x 2 YYYY ZZZZ 651K Jan 3 11:58 zsh*
    
  4. Mi .login 가 비어있습니다(댓글만)

  5. .profile파일이 없습니다
  6. cat/etc/*-release:

    Scientific Linux SL release 5.1 (Boron)
    

이 문제의 원인과 로컬 설치에서 화면이 작동하도록 하는 방법에 대한 아이디어가 있습니까 zsh?

답변1

한 가지 가능한 이유는 터미널 소유권을 기록할 수 있는 screen권한(일부 시스템에서는 setgid임)이 있기 때문입니다.utmputmp파일), 이 zsh 바이너리에는 기본 라이브러리 경로에 없는 라이브러리가 필요합니다. setuid 또는 setgid 프로그램을 호출하면 일부 환경 변수, 특히 LD_LIBRARY_PATH.

외부 화면에서는 가능하지만 내부에서는 불가능하고 에서 설정했다면 /my/path/to/zsh/bin/zsh증상이 설명될 것입니다.LD_LIBRARY_PATH.profile

답변2

이것은 어색합니다. 내 변수의 값이 $SHELL올바르지 않습니다(오타가 있습니다). 사과드립니다. 이런 질문을 게시하여 모든 사람의 시간을 낭비하기 전에 이러한 사항을 세 번 확인하도록 하겠습니다. 도움을 주신 모든 분들께 진심으로 감사드립니다.

관련 정보