![屏幕失败并显示“WriteMessage:错误的文件描述符”](https://linux22.com/image/79651/%E5%B1%8F%E5%B9%95%E5%A4%B1%E8%B4%A5%E5%B9%B6%E6%98%BE%E7%A4%BA%E2%80%9CWriteMessage%EF%BC%9A%E9%94%99%E8%AF%AF%E7%9A%84%E6%96%87%E4%BB%B6%E6%8F%8F%E8%BF%B0%E7%AC%A6%E2%80%9D.png)
我有屏幕会话“main”,从/dev/ttySAC0
和 sh 开始,从(屏幕会话外)开始,/dev/ttySAC0
包含输入、输出和错误流,重定向到伪终端/dev/pts/1
。当我连接到 /dev/pts/1 终端并尝试运行时screen -r main
,它失败并显示:
WriteMessage: Bad file descriptor
但是创建新的屏幕会话screen
效果很好。此外,如果我screen -r main
在此屏幕会话中运行,我会在另一个屏幕会话中看到带有已保存会话的屏幕。它没有用,但它有效。
即使我在 中启动新会话/dev/pts/1
,从中分离并尝试恢复它,我也会遇到同样的错误。
答案1
跑screen -d
,找到屏幕然后跑screen -R [screen_name]
。
答案2
尝试将该行添加defnonblock on
到您的 ~/.screenrc 文件中。
当我开始遇到同样的问题时,我发现一些帖子提到它解决了他们的问题。它修复了我的。
答案3
如果我有一个屏幕与另一个屏幕同名+后面有更多文本,则屏幕名称没有额外的文本会中断,即会发生这种情况
~$ screen -ls
7385.foo-screen (02/27/2020 12:03:41 AM) (Detached)
7296.foo-screen-2 (02/27/2020 12:00:48 AM) (Detached)
作品:
~$ screen -r foo-screen-2
失败:
~$ screen -r foo-screen
WriteMessage: Bad file descriptor
作品:
~$ screen -r 7385.foo-screen