使用 sudo 时屏幕不出现在列表中

使用 sudo 时屏幕不出现在列表中

root用户(由 打印whoami)下,执行

sh -c "screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""

创建一个有两行输出的屏幕,可以通过以下方式重新连接screen -r testcreen

但如果我使用

sudo -n -u root sh -c "screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""

屏幕未出现在列表中。出了什么问题?我应该怎么做?

(CentOS 5.2)

答案1

听起来您的屏幕二进制位置不在 sh 使用的 $PATH 中。因此,当您使用 sudo 时,由于您没有调用登录 shell 来设置新环境,因此该命令不存在。您可以通过检查几件事来验证这一点。

成为根用户:

$ sudo -s
# which screen
/some/path/to/screen
# echo $PATH

解决此问题的最简单方法是在所使用的命令中指定屏幕的完整路径:

$ sudo -n -u root sh -c "/some/path/to/screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""

如果这不能解决问题,通过执行以下操作来捕获 sh 启动屏幕时是否遇到其他问题会很有帮助:

$ sudo -n -u root sh -c "set -x ; screen -d -m -S testscreen sh -c \"echo asd; echo qwe\""

答案2

屏幕已添加到 root 用户,请使用sudo screen -raAd重新附加

相关内容