win10 + wsl2 + codex ≥ 0.123.0 卡死问题解决方案

从 codex 0.123.0 导致 windows 系统直接卡死 继续讨论 这个问题折磨了我好久, 高强度搜索鞭策 ai 全网找类似的问题, 但是好像就我遇到了, 结果前两天逛 github 猛然发现 codex 竟然是 开源的!!! 那还说啥了, 源码拉下来让 codex 自己分析一下自己 库库...
win10 + wsl2 + codex ≥ 0.123.0 卡死问题解决方案
win10 + wsl2 + codex ≥ 0.123.0 卡死问题解决方案

codex 0.123.0 导致 windows 系统直接卡死 继续讨论

这个问题折磨了我好久, 高强度搜索鞭策 ai 全网找类似的问题, 但是好像就我遇到了, 结果前两天逛 github 猛然发现 codex 竟然是 开源的!!!

那还说啥了, 源码拉下来让 codex 自己分析一下自己

image

库库干了半个小时真让他找到问题了, 一句话说就是

在 wsl 中执行 windows 的 `cmd.exe /d /s /c 'set TERM_PROGRAM'` 会卡 60s 左右, 具体原因不详.

解决方法很简单, 拦截一下这条 cmd.exe 命令就行了

TOOL_DIR="$HOME/tools"
mkdir -p "$TOOL_DIR"

cat << 'EOF' > "$TOOL_DIR/cmd.exe"
#!/bin/bash

# Codex TUI WSL2 fix:
# Avoid slow Windows interop for:
#   cmd.exe /d /s /c "set TERM_PROGRAM"
if [[ "$1" == "/d" && "$2" == "/s" && "$3" == "/c" && "$4" == "set TERM_PROGRAM" ]]; then
    if [[ -n "${TERM_PROGRAM:-}" ]]; then
        printf 'TERM_PROGRAM=%s\r\n' "$TERM_PROGRAM"
    fi
    exit 0
fi

exec /mnt/c/Windows/System32/cmd.exe "$@"
EOF

chmod +x "$TOOL_DIR/cmd.exe"

# Avoid duplicate PATH entries in ~/.bashrc
if ! grep -q '# Codex WSL2 cmd.exe fix' "$HOME/.bashrc"; then
    {
        echo ''
        echo '# Codex WSL2 cmd.exe fix'
        echo 'export PATH="$HOME/tools:$PATH"'
        echo 'export CODEX_TUI_DISABLE_KEYBOARD_ENHANCEMENT=1'
    } >> "$HOME/.bashrc"
fi

source "$HOME/.bashrc"

claude code 存在类似问题, 详见 Windows 下 WSL2 运行 Claude Code 卡顿的解决方法

2 个帖子 - 2 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文