홈 디렉토리에 컴파일된 Zsh 쉘에서 screen을 실행하려고 할 때마다 다음 오류가 발생합니다.
> screen
Cannot exec '/my/path/to/zsh/bin/zsh'
csh
Z 셸은 완벽하게 작동하며, 예를 들어 시스템 셸을 사용하여 호출하면 화면을 실행할 수 있음 을 확인했습니다 . 나는 보통 다음을 만난다 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/
내 홈 디렉터리 아래의 경로를 기호적으로 참조합니다.
고쳐 쓰다
호출 결과
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
하지만 나는할 수 있는성공적으로 실행되고 내 쉘에서 들어갑니다
/my/path/to/zsh/bin/zsh
. 나는 보통 zsh로 전환한다zsh
csh
exec /my/path/to/zsh/bin/zsh
ls
자세한 내용은 다음과 같습니다 ./my/path/to/zsh/bin/zsh
-rwxr-xr-x 2 YYYY ZZZZ 651K Jan 3 11:58 zsh*
Mi
.login
가 비어있습니다(댓글만).profile
파일이 없습니다cat/etc/*-release
:Scientific Linux SL release 5.1 (Boron)
이 문제의 원인과 로컬 설치에서 화면이 작동하도록 하는 방법에 대한 아이디어가 있습니까 zsh
?
답변1
한 가지 가능한 이유는 터미널 소유권을 기록할 수 있는 screen
권한(일부 시스템에서는 setgid임)이 있기 때문입니다.utmp
utmp
파일), 이 zsh 바이너리에는 기본 라이브러리 경로에 없는 라이브러리가 필요합니다. setuid 또는 setgid 프로그램을 호출하면 일부 환경 변수, 특히 LD_LIBRARY_PATH
.
외부 화면에서는 가능하지만 내부에서는 불가능하고 에서 설정했다면 /my/path/to/zsh/bin/zsh
증상이 설명될 것입니다.LD_LIBRARY_PATH
.profile
답변2
이것은 어색합니다. 내 변수의 값이 $SHELL
올바르지 않습니다(오타가 있습니다). 사과드립니다. 이런 질문을 게시하여 모든 사람의 시간을 낭비하기 전에 이러한 사항을 세 번 확인하도록 하겠습니다. 도움을 주신 모든 분들께 진심으로 감사드립니다.