Skip to content

升級swoole 6.2 后 co::exec 一直返回false #6044

@kenchan97

Description

@kenchan97

=== Swoole Co::exec 完整诊断 ===

  1. PHP 环境
    PHP 版本: 8.2.30
    PHP SAPI: cli
    操作系统: Linux

  2. Swoole 信息
    ✅ Swoole 已加载
    Swoole 版本: 6.2.0
    ✅ Co::exec() 方法存在

  3. PHP 禁用函数检查
    ✅ 无禁用函数

  4. PHP 原生命令执行测试
    ✅ shell_exec 可用: test
    ✅ exec 可用: test

  5. Swoole 协程测试
    协程 ID: 1
    ❌ Co::exec('pwd') 失败
    错误码: 22
    错误信息: Invalid argument

尝试 System::exec:
❌ System::exec 失败
错误码: 22
错误信息: Invalid argument

=== 深度诊断 Swoole Co::exec ===

  1. 测试 PHP 原生命令执行:
    shell_exec 结果: 'test
    '
    exec 结果: 返回码=0, 输出=array (
    0 => '/root',
    )

  2. 检查 shell:
    /bin/sh 存在: ✅
    /bin/sh 是链接: 是 -> dash
    /bin/sh 可执行: ✅

  3. 测试不同的 Hook 配置:

测试 Hook: SWOOLE_HOOK_ALL (值: 2143285247)
❌ 失败 - 错误码: 22 (Invalid argument)

测试 Hook: SWOOLE_HOOK_PROC (值: 1024)
❌ 失败 - 错误码: 22 (Invalid argument)

测试 Hook: 无 Hook (0) (值: 0)
❌ 失败 - 错误码: 22 (Invalid argument)

  1. 测试 Swoole\Coroutine\System::exec:
    ❌ 失败 - 错误码: 22 (Invalid argument)

  2. 系统信息:
    uname: Linux ca0 6.1.0-41-amd64 编译出错 #1 SMP PREEMPT_DYNAMIC Debian 6.1.158-1 (2025-11-09) x86_64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions