“脚本/dev/null”有什么作用?

“脚本/dev/null”有什么作用?

每次我使用 rootsu用户帐户登录虚拟机并尝试使用screen它时,都会抛出错误:

Cannot open your terminal '/dev/pts/0' - please check.

Stack Overflow 上的一篇文章说我需要使用script /dev/null来修复它,并且它有效,但它仍然没有解释为什么我需要输入script /dev/null.我想了解它的作用以及为什么我需要输入它。

答案1

您无法打开它,/dev/pts/0因为它归 root 所有,并且在您 su-ed 进入另一个用户后,您将无法再通过其路径打开它,但您仍然可以通过打开的句柄使用它,该句柄是继承的来自父进程。

script /dev/null将创建另一个 pty,由当前用户拥有。

无论如何,该错误/限制似乎已在最新版本screen(例如 4.99.0)中得到修复,它将通过 unix 域套接字上的辅助消息正确地将句柄发送到当前终端SCM_RIGHTS,而不是仅发送名称终端并让screen服务器尝试打开它(但失败)。同样的事情与tmux.

相关内容