Mòdul child_process
Mòdul de gestió de processos infantils
Mètode de referència:
1
2var 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:
- '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.
- '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.
- '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".
- 'pty': el procés fill s'executarà en un terminal virtual. En aquest moment, només stdin i stdout són vàlids.
- 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.
- 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
13const {
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.run
no és cap API corresponent als nodejs
Funció estàtica
spawn
Allibereu un procés fill amb l'ordre indicada
1
2
3static 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:
- ChildProcess, Retorna l'objecte de 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": "", // 子进程的当前的工作目录,缺省使用当前目录
"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
2static 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:
- ChildProcess, Retorna l'objecte de 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": "", // 子进程的当前的工作目录,缺省使用当前目录
"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
2static (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
3static (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
2static (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
3static 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:
- ChildProcess, Retorna l'objecte de 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": "", // 子进程的当前的工作目录,缺省使用当前目录
"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
2static 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:
- ChildProcess, Retorna l'objecte de 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": "", // 子进程的当前的工作目录,缺省使用当前目录
"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
3static 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
2static 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
}