child_process.execSync(command[, options])


  • command <string> 运行的命令。
  • options <Object>

    • cwd <string> 子进程的当前工作目录。
    • input <string> | <Buffer> | <TypedArray> | <DataView> 传入衍生进程的 stdin。指定该值会覆盖 stdio[0]
    • stdio <string> | <Array> 子进程的 stdio 配置。stderr 默认会输出到父进程的 stderr,除非指定了 stdio。默认为 'pipe'
    • env <Object> 环境变量键值对。
    • shell <string> 执行命令的 shell。参阅 Shell的要求Windows默认的Shell。 在 UNIX 上默认为 '/bin/sh',在 Windows 上默认为 process.env.ComSpec
    • uid <number> 进程的用户标识。参阅 setuid(2)
    • gid <number> 进程的群组标识。参阅 setgid(2)
    • timeout <number> 允许进程运行的最长时间,以毫秒为单位。默认为 undefined
    • killSignal <string> | <integer> 用于杀死衍生进程的信号。默认为 'SIGTERM'
    • maxBuffer <number> stdout 或 stderr 允许的最大字节数。如果超过限制,则子进程会终止。参阅 maxBuffer与Unicode。默认为 200*1024
    • encoding <string> 用于 stdio 输入和输出的字符编码。默认为 'buffer'
    • windowsHide <boolean> 是否隐藏子进程的控制台窗口。默认为 false
  • 返回: <Buffer> | <string> 命令的 stdout。

child_process.exec() 的区别是,该方法需等到子进程完全关闭后才返回。 当发生超时且已发送 killSignal 时,该方法也需等到进程完全退出后才返回。 如果子进程拦截并处理了 SIGTERM 信号且没有退出,则父进程会一直等待直到子进程退出。

如果进程超时或有非零的退出码,则抛出错误。 Error 会包含从 child_process.spawnSync() 返回的整个结果。

  • command <string> The command to run.
  • options <Object>

    • cwd <string> Current working directory of the child process.
    • input <string> | <Buffer> | <TypedArray> | <DataView> The value which will be passed as stdin to the spawned process. Supplying this value will override stdio[0].
    • stdio <string> | <Array> Child's stdio configuration. stderr by default will be output to the parent process' stderr unless stdio is specified. Default: 'pipe'.
    • env <Object> Environment key-value pairs.
    • shell <string> Shell to execute the command with. See Shell Requirements and Default Windows Shell. Default: '/bin/sh' on UNIX, process.env.ComSpec on Windows.
    • uid <number> Sets the user identity of the process. (See setuid(2)).
    • gid <number> Sets the group identity of the process. (See setgid(2)).
    • timeout <number> In milliseconds the maximum amount of time the process is allowed to run. Default: undefined.
    • killSignal <string> | <integer> The signal value to be used when the spawned process will be killed. Default: 'SIGTERM'.
    • maxBuffer <number> Largest amount of data in bytes allowed on stdout or stderr. If exceeded, the child process is terminated. See caveat at maxBuffer and Unicode. Default: 200 * 1024.
    • encoding <string> The encoding used for all stdio inputs and outputs. Default: 'buffer'.
    • windowsHide <boolean> Hide the subprocess console window that would normally be created on Windows systems. Default: false.
  • Returns: <Buffer> | <string> The stdout from the command.

The child_process.execSync() method is generally identical to child_process.exec() 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. Note that if the child process intercepts and handles the SIGTERM signal and doesn't exit, the parent process will wait until the child process has exited.

If the process times out or has a non-zero exit code, this method will throw. The Error object will contain the entire result from child_process.spawnSync().

Never pass unsanitized user input to this function. Any input containing shell metacharacters may be used to trigger arbitrary command execution.