GNU/screen 未设置 $STY

GNU/screen 未设置 $STY

我正在尝试使用以下形式的命令来编写 GNU/screen 窗口的生成脚本screen <CMD>

由于某种原因,当我手动启动 GNU/screen 时,它在窗口 0 ( /bin/bash) 中启动的 shell 不包含$STY环境变量。如果没有此命令,例如screen vimstart a嵌套屏幕会话,而不是我想要的另一个窗口。

我的环境有些不寻常。下面是我最终的情况:

ssh robm@somehost
sudo su sharedaccount
script /dev/null
screen

script /dev/null步骤存在的原因在于分配给用户的 TTY 设备robm无法被用户访问sharedaccount。该script命令会分配一个由调用它的用户拥有的新 TTY,从而解决该问题。

如果我跳过sudoscript步骤,GNU/screen$STY就可以正常设置。换句话说,这可以正常工作:

ssh robm@somehost
screen

大概是sudoscript有某些东西干扰了screen,但我不知道是什么。

答案1

啊,这是sharedaccountSHELL 初始化脚本的错。它调用exec env -i ...来创建一个新的 shell,而不包含原始用户环境中的垃圾内容。

如果我浪费了你们的时间,我很抱歉。

答案2

我认为,如果您通过将调用更改为 ,并在调用时加上破折号,例如: ,则可以跳过此script /dev/null步骤并解决问题。这将设置您的所有环境变量,就像您实际以 身份登录时一样。susudo su - sharedaccountsharedaccount

相关内容