Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Hyperkit's go api could not create console on stdio.

未关闭
#325 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
go

调研方向

首先跟踪 StdioInteractiveConsole 和 ConsoleStdio 的 Go API 路径直到 run(),然后检查 isTerminal(os.Stdout) 条件以及后续的 StdoutPipe() 调用。在 stdio 连接到 TTY 的情况下重现这两种情况,并确认 TTY 情况不再返回错误的错误信息,且 ConsoleStdio 不再报告 "exec: Stdout already set."

由索引模型根据 Issue 内容生成。

描述

Could not create console on stdio with ConsoleStdio or StdioInteractiveConsole

Case 1. StdioInteractiveConsole

If I set the value of Serial.InteractiveConsole to StdioInteractiveConsole to create console on stdio, it return an error:
If StdioInteractiveConsole is set, stdio must be a TTY.

Unlike the description of the error, this error occurs when isTerminal() condition returns true. That is, although stdio is a tty, error occurs.

if isTerminal(os.Stdout) {
  return errors.New("If StdioInteractiveConsole is set, stdio must be a TTY")
}
Case 2. ConsoleStdio

If I set the value of Hyperkit.Console (without Serial) field to ConsoleStdio and call run(), an error occurs: exec: Stdout already set.

With stdio console, cmd.Stdout is set to os.Stdout (cmd.Stdout = os.Stdout). But the next line, cmd.StdoutPipe() method is called and the method return error when cmd.Stdout is not nil.

主要语言
C
星标
3.7k
派生
336
PR 合并指标
30 天内没有已合并 PR

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

moby/hyperkit 的其他 Issue

查看 moby/hyperkit 的全部 Issue

相似的 Issue

更多 C Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。