child_process.execFileSync(file[, args][, options])
file
<string> 要运行的可执行文件的名称或路径。args
<string[]> 字符串参数列表。options
<Object>cwd
<string> 子进程的当前工作目录。input
<string> | <Buffer> | <TypedArray> | <DataView> 将作为标准输入传给衍生进程的值。 提供此值将覆盖stdio[0]
。stdio
<string> | <Array> 子进程的标准输入输出配置。 除非指定stdio
,否则默认情况下stderr
将输出到父进程的标准错误。 默认值:'pipe'
。env
<Object> 环境变量键值对。 默认值:process.env
。uid
<number> 设置进程的用户标识(参见setuid(2)
)。gid
<number> 设置进程的群组标识(参见setgid(2)
)。timeout
<number> 允许进程运行的最长时间(以毫秒为单位)。 默认值:undefined
。killSignal
<string> | <integer> 衍生的进程将被终止时要使用的信号值。 默认值:'SIGTERM'
。maxBuffer
<number> 标准输出或标准错误上允许的最大数据量(以字节为单位)。 如果超过,则终止子进程。 请参阅 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
时,该方法在进程完全退出之前不会返回。
如果子进程拦截并处理了 SIGTERM
信号且没有退出,则父进程仍然会等待,直到子进程退出。
如果进程超时或具有非零退出码,则此方法将抛出 Error
,其中包含底层 child_process.spawnSync()
的完整结果。
如果启用了 shell
选项,则请勿将未经处理的用户输入传递给此函数。
任何包含 shell 元字符的输入都可用于触发任意命令执行。
file
<string> The name or path of the executable file to run.args
<string[]> List of string arguments.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 overridestdio[0]
.stdio
<string> | <Array> Child's stdio configuration.stderr
by default will be output to the parent process' stderr unlessstdio
is specified. Default:'pipe'
.env
<Object> Environment key-value pairs. Default:process.env
.uid
<number> Sets the user identity of the process (seesetuid(2)
).gid
<number> Sets the group identity of the process (seesetgid(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 atmaxBuffer
and Unicode. Default:1024 * 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
.shell
<boolean> | <string> Iftrue
, runscommand
inside of a shell. Uses'/bin/sh'
on Unix, andprocess.env.ComSpec
on Windows. A different shell can be specified as a string. See Shell requirements and Default Windows shell. Default:false
(no shell).
- Returns: <Buffer> | <string> The stdout from the command.
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.
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.
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()
.
If the shell
option is enabled, do not pass unsanitized user input to this
function. Any input containing shell metacharacters may be used to trigger
arbitrary command execution.