屏幕:“无法使用本地 shell 执行 /my/path/to/zsh”

屏幕:“无法使用本地 shell 执行 /my/path/to/zsh”

每当我尝试在主目录下编译的 Zsh shell 下运行 screen 时,都会收到以下错误:

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

Z shell 功能完美,并且我已经验证,如果我使用系统 shell(例如csh)调用它,我可以运行 screen。我通常会遇到zshexec 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. 但是我成功运行并从我的shell/my/path/to/zsh/bin/zsh进入。我通常切换到 zshzshcshexec /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 utmp,能够将终端所有权记录到utmp文件),并且此 zsh 二进制文件需要一个不在默认库路径中的库。调用 setuid 或 setgid 程序会删除一些环境变量,特别是LD_LIBRARY_PATH.

如果您可以从外部屏幕执行但不能从内部执行,并且您在 中/my/path/to/zsh/bin/zsh进行设置,则可以解释您的症状。LD_LIBRARY_PATH.profile

答案2

这很尴尬:我的变量的值$SHELL不正确(有一个拼写错误)。我道歉 - 在发布这样的问题并浪费每个人的时间之前,我会确保我三次检查这些事情。非常感谢大家的帮助。

相关内容