Skip to content

执行 (exec)

执行系统命令并返回结果。

输入

包含命令或参数的消息对象。

输出

命令执行结果消息对象。

详细说明

执行节点可以运行系统命令并返回结果。

配置选项

  • 命令: 要执行的系统命令
  • 追加: 将msg.payload作为参数追加到命令
  • 超时: 命令执行超时时间(秒)
  • 输出格式:
    • 执行完成时输出(exec模式)
    • 命令运行时输出(spawn模式)

输出消息格式

exec模式:

javascript
// 成功执行
msg = {
    payload: "命令输出结果",
    rc: {
        code: 0,        // 退出代码
        signal: null    // 信号
    }
}

// 执行失败
msg = {
    payload: {
        error: "错误信息",
        stderr: "标准错误输出",
        stdout: "标准输出"
    },
    rc: {
        code: 1,
        signal: null
    }
}

spawn模式:

javascript
// 标准输出
msg = {
    payload: "输出行",
    topic: "stdout"
}

// 标准错误
msg = {
    payload: "错误行", 
    topic: "stderr"
}

// 进程结束
msg = {
    payload: 0,     // 退出代码
    topic: "return"
}

示例

执行简单命令:

javascript
// 配置:命令 = "ls -la"
// 输出
msg = {
    payload: "total 8\ndrwxr-xr-x 2 user user 4096 Jan 1 12:00 .\n...",
    rc: {code: 0, signal: null}
}

带参数的命令:

javascript
// 配置:命令 = "echo", 追加 = true
// 输入
msg = {payload: "Hello World"}

// 输出
msg = {
    payload: "Hello World\n",
    rc: {code: 0, signal: null}
}

应用场景

  • 系统管理和监控
  • 文件操作
  • 调用外部程序
  • 系统集成

注意事项

  • 注意命令执行的安全性
  • 设置合适的超时时间
  • 处理命令执行失败的情况
  • 避免执行危险命令

蜀ICP备2025139593号