我的 GNU 屏幕在 LXC 容器中运行,因此具有私有 PID 命名空间。我正尝试从命名空间“外部”连接到该屏幕。两个屏幕共享文件系统,因此能够访问相同的套接字。“外部”screen -ls
正确列出了会话,但尝试连接screen -x
失败,显示“尝试附加错误的 pid(XXX)!在 lxc 容器内运行的原始屏幕上显示“”消息。“外部”附加器屏幕等待 15 秒并退出并显示“地牢突然崩塌!!——你死了……“消息和1作为错误代码。
“外部”附件能够远程分离屏幕,screen -d
但仍有 15 秒超时和“崩溃”错误。“外部”附件能够screen -X
毫无问题地执行命令。但是,将命令传递到正在运行的屏幕后,会挂起并等待 Ctrl+C,留下带有screen -Q
后缀的死套接字。-queryA
/var/run/screen/
“内部”屏幕无法看到“外部”屏幕,这是很自然的,因为它们不共享 pid 命名空间。是否可以关闭屏幕上的 PID 检查?为什么我们在连接到屏幕时需要进行该检查?访问套接字是否足以让屏幕彼此正确通信?
更新:我已向提交请求屏幕开发通过错误报告的邮件列表#35324。