child_process.execFileSync(file[, args][, options])


  • file <string> 要运行的可执行文件的名称或路径。
  • args <string[]> 字符串参数列表。
  • options <Object>
    • cwd <string> | <URL> 子进程的当前工作目录。
    • input <string> | <Buffer> | <TypedArray> | <DataView> 将作为标准输入传递给生成的进程的值。提供此值将覆盖 stdio[0]
    • stdio <string> | <Array> 子进程的标准输入输出配置。默认情况下,stderr 将输出到父进程的标准错误,除非指定了 stdio默认值: 'pipe'
    • env <Object> 环境键值对。默认值:process.env
    • uid <number> 设置进程的用户身份(参见 setuid(2))。
    • gid <number> 设置进程的组标识(参见 setgid(2))。
    • timeout <number> 以毫秒为单位,进程允许运行的最长时间。默认值: undefined
    • killSignal <string> | <integer> 在生成的进程将被终止时使用的信号值。默认值: 'SIGTERM'
    • maxBuffer <number> stdout 或 stderr 上允许的最大数据量(以字节为单位)。如果超过,该子进程将被终止。详见 maxBuffer 和 Unicode 的注意事项。默认值: 1024 * 1024
    • encoding <string> 用于所有标准输入和输出的编码。 默认值: 'buffer'
    • windowsHide <boolean> 隐藏通常会在 Windows 系统上创建的子进程控制台窗口。默认值: false
    • shell <boolean> | <string> 如果 true,在 shell 中运行 command。在 Unix 上使用 '/bin/sh',在 Windows 上使用 process.env.ComSpec。可以将不同的 shell 指定为字符串。参见 Shell 要求默认 Windows shell默认值: false(无 shell)。
  • 返回:<Buffer> | <string> 命令的标准输出。

child_process.execFileSync() 方法通常与 child_process.execFile() 完全相同,唯一的区别是该方法在子进程完全关闭之前不会返回。当遇到超时并发送 killSignal 时,该方法不会返回,直到进程完全退出。

🌐 The child_process.execFileSync() method is generally identical to child_process.execFile() with the exception that the method will not return until the child process has fully closed. When a timeout has been encountered and killSignal is sent, the method won't return until the process has completely exited.

如果子进程拦截并处理 SIGTERM 信号且没有退出,父进程仍然会等待直到子进程退出。

🌐 If the child process intercepts and handles the SIGTERM signal and does not exit, the parent process will still wait until the child process has exited.

如果进程超时或有非零退出代码,此方法将抛出一个 Error,其中将包含底层 child_process.spawnSync() 的完整结果。

🌐 If the process times out or has a non-zero exit code, this method will throw an Error that will include the full result of the underlying child_process.spawnSync().

如果启用了 shell 选项,请不要将未经过滤的用户输入传递给此函数。任何包含 shell 元字符的输入都可能被用来触发任意命令的执行。