Mòdul mòdul bàsic

Mòdul child_process

Mòdul de gestió de processos infantils

Mètode de referència:

1 2
var child_process = require("child_process"); var child = child_process.spawn("ls");

En crear un procés fill, l’opció options.stdio s’utilitza per configurar la canalització establerta entre el procés pare i el procés fill. Per defecte, es redirigirà a stdin, stdout i stderr del procés fillChildProcessEls fluxos stdin, stdout i stderr corresponents a l'objecte. Això equival a configurar options.stdio a ['pipe', 'pipe', 'pipe'].

Per comoditat, options.stdio pot ser una de les cadenes següents:

  • 'pipe': equivalent a ['pipe', 'pipe', 'pipe'] (valor per defecte).
  • 'ignora': equival a ['ignora', 'ignora', 'ignora'].
  • 'heretar': equivalent a ['heretar', 'heretar', 'heretar'] o [0, 1, 2].
  • 'pty': equivalent a ['pty', 'pty', 'pty']. Windows no és compatible.

En cas contrari, el valor d’opcions.stdio ha de ser una matriu (on cada índex correspon a un descriptor de fitxer en el procés fill). Els descriptors de fitxers 0, 1 i 2 corresponen a stdin, stdout i stderr, respectivament. Es poden designar altres descriptors de fitxers per crear altres canalitzacions entre el procés pare i el procés fill. El valor pot ser un dels següents:

  1. 'pipe': crea una canonada entre el procés fill i el procés pare. El pare de la canonada està exposat al procés pare com a l'atribut stdio [fd] a l'objecte child_process. Les canonades creades per als descriptors de fitxers 0, 1 i 2 també es poden utilitzar com a stdin, stdout i stderr, respectivament.
  2. 'ignora': instruïu a fibjs perquè ignori el descriptor de fitxers en el procés fill. Tot i que fibjs sempre obrirà els descriptors de fitxers 0, 1 i 2 per als seus processos generats, establir el descriptor de fitxer a "ignorar" permet que fibjs obri / dev / null i el adjunti al descriptor de fitxers del procés fill.
  3. 'inherit': transmet el stdio corresponent al procés principal o des del procediment principal. A les tres primeres posicions, això equival aprocess.stdin, process.stdout amb process.stderr. En qualsevol altra posició, equival a "ignorar".
  4. 'pty': el procés fill s'executarà en un terminal virtual. En aquest moment, només stdin i stdout són vàlids.
  5. Enter positiu: el valor enter s’interpretarà com el descriptor de fitxer obert actualment al procés pare. Es comparteix amb el procés fill, similar a compartir <Stream> La forma de l'objecte. Els sòcols entrants no són compatibles amb Windows.
  6. nul o sense definir: utilitzeu el valor per defecte. Per als descriptors de fitxers stdio 0, 1 i 2 (en altres paraules, stdin, stdout i stderr), es crearan canonades. Per al descriptor de fitxers 3 i superior, el valor per defecte és «no».
1 2 3 4 5 6 7 8 9 10 11 12 13
const { spawn } = require('child_process'); // 子进程使用父进程的 stdio。 spawn('prg', [], { stdio: 'inherit' }); // 衍生的子进程只共享 stderr。 spawn('prg', [], { stdio: ['pipe', 'pipe', process.stderr] });

Per als usuaris que utilitzen nodejs alhora, presteu atenció

  • fibjs el child_process.exec(command, args)mateix nom api nodejs funcions similars, però al Windows, no ordena automàticament cmd.exe com a paràmetre d’entorn d’execució;
  • El procés child_. [Spawn | exec | execFile | run] de fibjs és una funció d'estil asíncron integrada de sincronització / devolució de trucada:
    • Si l'últim paràmetre no és una funció, és síncró
    • Si es passa una funció com a darrer paràmetre, és asíncrona;
  • El resultat de retorn de fibjs child_process. [Exec | execFile] és un objecte, que és completament diferent de l'objecte retornat per l'api de nodejs amb el mateix nom
  • fibjs child_process.runno és cap API corresponent als nodejs

Funció estàtica

spawn

Allibereu un procés fill amb l'ordre indicada

1 2 3
static ChildProcess child_process.spawn(String command, Array args, Object options = {});

Paràmetres de trucada:

  • command: Cadena, especifiqueu l'ordre que cal executar
  • args: Matriu, especifiqueu la llista de paràmetres de cadena
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9 10
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "stdio": Array | String, // 子进程 stdio 配置 "env": {}, // 环境变量的键值对 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

Allibereu un procés fill amb l'ordre indicada

1 2
static ChildProcess child_process.spawn(String command, Object options = {});

Paràmetres de trucada:

  • command: Cadena, especifiqueu l'ordre que cal executar
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9 10
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "stdio": Array | String, // 子进程 stdio 配置 "env": {}, // 环境变量的键值对 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

exec

Executeu una ordre a l'intèrpret d'ordres i deseu la memòria intermèdia de sortida. Quan s'executa en mode de devolució de trucada, la funció retornarà l'objecte de procés fill

1 2
static (Variant stdout, Variant stderr) child_process.exec(String command, Object options = {}) async;

Paràmetres de trucada:

  • command: Cadena, especifiqueu l'ordre que cal executar
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

  • (Variant stdout, Variant stderr), retorna el contingut de sortida stdio del procés fill

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9 10
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "env": {}, // 环境变量的键值对 "encoding": "utf8", // 指定返回结果的编码,缺省为 utf8 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

execFile

Executeu el fitxer especificat directament i deseu la memòria intermèdia de la sortida. Quan s'executa en mode de devolució de trucada, la funció retornarà l'objecte de procés fill

1 2 3
static (Variant stdout, Variant stderr) child_process.execFile(String command, Array args, Object options = {}) async;

Paràmetres de trucada:

  • command: Cadena, especifiqueu l'ordre que cal executar
  • args: Matriu, especifiqueu la llista de paràmetres de cadena
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

  • (Variant stdout, Variant stderr), retorna el contingut de sortida stdio del procés fill

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9 10
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "env": {}, // 环境变量的键值对 "encoding": "utf8", // 指定返回结果的编码,缺省为 utf8 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

Executeu el fitxer especificat directament i deseu la memòria intermèdia de la sortida. Quan s'executa en mode de devolució de trucada, la funció retornarà l'objecte de procés fill

1 2
static (Variant stdout, Variant stderr) child_process.execFile(String command, Object options = {}) async;

Paràmetres de trucada:

  • command: Cadena, especifiqueu l'ordre que cal executar
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

  • (Variant stdout, Variant stderr), retorna el contingut de sortida stdio del procés fill

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9 10
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "env": {}, // 环境变量的键值对 "encoding": "utf8", // 指定返回结果的编码,缺省为 utf8 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

fork

Executeu un mòdul en el procés fill

1 2 3
static ChildProcess child_process.fork(String module, Array args, Object options = {});

Paràmetres de trucada:

  • module: Cadena, especifiqueu l'ordre que cal executar
  • args: Matriu, especifiqueu la llista de paràmetres de cadena
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9 10
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "stdio": Array | String, // 子进程 stdio 配置 "env": {}, // 环境变量的键值对 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

Executeu un mòdul en el procés fill

1 2
static ChildProcess child_process.fork(String module, Object options = {});

Paràmetres de trucada:

  • module: Cadena, especifiqueu l'ordre que cal executar
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9 10
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "stdio": Array | String, // 子进程 stdio 配置 "env": {}, // 环境变量的键值对 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

run

Executeu el fitxer especificat directament i torneu exitCode. Quan s'executa en mode de devolució de trucada, la funció retornarà l'objecte de procés fill

1 2 3
static Integer child_process.run(String command, Array args, Object options = {}) async;

Paràmetres de trucada:

  • command: Cadena, especifiqueu l'ordre que cal executar
  • args: Matriu, especifiqueu la llista de paràmetres de cadena
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

  • Integer, Retorna el codi de sortida del procés fill

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "env": {}, // 环境变量的键值对 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }

Executeu el fitxer especificat directament i torneu exitCode. Quan s'executa en mode de devolució de trucada, la funció retornarà l'objecte de procés fill

1 2
static Integer child_process.run(String command, Object options = {}) async;

Paràmetres de trucada:

  • command: Cadena, especifiqueu l'ordre que cal executar
  • options: Objecte, especifiqueu paràmetres de creació

Resultat de retorn:

  • Integer, Retorna el codi de sortida del procés fill

El contingut admès per les opcions és el següent:

1 2 3 4 5 6 7 8 9
{ "cwd": "", // 子进程的当前的工作目录,缺省使用当前目录 "env": {}, // 环境变量的键值对 "detached": false, // 子进程将会变成一个进程组的领导者,缺省为 false "uid": 0, // 设置用户进程的ID "gid": 0, // 设置进程组的ID "windowsVerbatimArguments": false, // 在 Windows上不执行引号或转义参数。 在 Unix 上被忽略。 当指定外壳且为 CMD 时,此选项将自动设置为true,缺省为 false "windowsHide": false // 隐藏通常在Windows系统上创建的子进程控制台窗口,缺省为 false }