mòdul fill_process
Mòdul de gestió de subprocés
Cita:
1
2var child_process = require("child_process");
var child = child_process.spawn("ls");
Quan es crea un procés fill, l'opció options.stdio s'utilitza per configurar la canonada establerta entre el procés principal i el procés fill. De manera predeterminada, es redirigeix a stdin, stdout i stderr del procés fillChildProcessEls fluxos stdin, stdout i stderr corresponents a l'objecte. Això és equivalent 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'] (per defecte).
- 'ignorar': equivalent a ['ignorar', 'ignorar', 'ignorar'].
- 'hereta': equivalent a ['hereta', 'hereta', 'hereta'] o [0, 1, 2].
- 'pty': equivalent a ['pty', 'pty', 'pty']. Windows no és compatible.
En cas contrari, el valor de options.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 especificar 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': creeu una canonada entre el procés fill i el procés pare. L'extrem principal de la canonada està exposat al procés pare com a atribut stdio[fd] de l'objecte child_process. Les canonades creades per als descriptors de fitxers 0, 1 i 2 també estan disponibles com a stdin, stdout i stderr respectivament.
- 'ignore': indica a fibjs que ignori els descriptors de fitxers als processos fills. Tot i que fibjs sempre obrirà els descriptors de fitxers 0, 1 i 2 per als seus processos generats, establir el descriptor de fitxers a "ignorar" fa que fibjs obri /dev/null i l'afegiu al descriptor de fitxers del procés fill.
- 'hereta': transmet l'estdio corresponent cap o des del procés pare. En les tres primeres posicions, això és equivalent aprocess.stdin,process.stdoutiprocess.stderr. En qualsevol altra posició, equivalent a 'ignorar'.
- 'pty': el procés fill s'executarà en un terminal virtual. En aquest moment només són vàlids stdin i stdout.
- Enter positiu: el valor sencer s'interpretarà com el descriptor de fitxer obert actualment al procés principal. Es comparteix amb el procés fill, de manera similar a compartir <Stream> Manera objecte. Els sòcols d'entrada no són compatibles amb Windows.
- nul o sense definir: utilitzeu el valor predeterminat. Les canonades es creen per als descriptors de fitxers 0, 1 i 2 de stdio (és a dir, stdin, stdout i stderr). Per als descriptors de fitxers 3 i superiors, el valor predeterminat és "ignora".
1
2
3
4
5
6
7
8
9
10
11
12
13const {
spawn
} = require('child_process');
// child process uses parent's stdio
spawn('prg', [], {
stdio: 'inherit'
});
// child process uses parent's stderr
spawn('prg', [], {
stdio: ['pipe', 'pipe', process.stderr]
});
Per als usuaris que també utilitzen nodejs, tingueu en compte que
- La funció de l'API de fibjs
child_process.exec(command, args)
amb el mateix nom és similar a la de nodejs, però a Windows, cmd.exe no s'utilitzarà automàticament com a entorn d'execució del paràmetre d'ordre; - Child_process de fibjs.[spawn|exec|execFile|run] és una funció d'estil asíncrona que integra sincronització/callback:
- Si l'últim paràmetre no és una funció, es sincronitza
- Si es passa una funció com a darrer paràmetre, és asíncrona;
- El resultat de retorn de child_process de fibjs.[exec|execFile] és un objecte, que és completament diferent de l'objecte retornat per l'API nodejs amb el mateix nom.
- fibjs
child_process.run
no té cap API corresponent a nodejs
funció estàtica
spawn
Publiqueu un procés fill amb l'ordre donada
1
2
3static ChildProcess child_process.spawn(String command,
Array args,
Object options = {});
Paràmetres de trucada:
- command: String, especifica l'ordre a executar
- args: Matriu, especifica la llista de paràmetres de cadena
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- ChildProcess, retorna l'objecte de procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"stdio": Array | String, // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // configure the group identity of the process
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
Publiqueu un procés fill amb l'ordre donada
1
2static ChildProcess child_process.spawn(String command,
Object options = {});
Paràmetres de trucada:
- command: String, especifica l'ordre a executar
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- ChildProcess, retorna l'objecte de procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"stdio": Array | String, // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
exec
Executeu una ordre a l'intèrpret d'ordres i emmagatzemeu la sortida. Quan s'executa en mode de devolució de trucada, la funció retornarà l'objecte del procés fill.
1
2static (Variant stdout, Variant stderr) child_process.exec(String command,
Object options = {}) async;
Paràmetres de trucada:
- command: String, especifica l'ordre a executar
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- (Variant stdout, Variant stderr), retorna el contingut de sortida stdio del procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"encoding": "utf8", // specify the character encoding used to decode the stdout and stderr output
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
execFile
Executeu directament el fitxer especificat i emmagatzemeu 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: String, especifica l'ordre a executar
- args: Matriu, especifica la llista de paràmetres de cadena
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- (Variant stdout, Variant stderr), retorna el contingut de sortida stdio del procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"encoding": "utf8", // specify the character encoding used to decode the stdout and stderr output
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
Executeu directament el fitxer especificat i emmagatzemeu 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: String, especifica l'ordre a executar
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- (Variant stdout, Variant stderr), retorna el contingut de sortida stdio del procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"encoding": "utf8", // specify the character encoding used to decode the stdout and stderr output
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
spawnSync
Publiqueu un procés fill amb l'ordre donada
1
2
3static (Integer pid, NArray output, Variant stdout, Variant stderr, Integer status, Variant error) child_process.spawnSync(String command,
Array args,
Object options = {}) async;
Paràmetres de trucada:
- command: String, especifica l'ordre a executar
- args: Matriu, especifica la llista de paràmetres de cadena
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- (Integer pid, NArray output, Variant stdout, Variant stderr, Integer status, Variant error), retorna el resultat en execució del procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"stdio": Array | String, // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // configure the group identity of the process
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
Publiqueu un procés fill amb l'ordre donada
1
2static (Integer pid, NArray output, Variant stdout, Variant stderr, Integer status, Variant error) child_process.spawnSync(String command,
Object options = {}) async;
Paràmetres de trucada:
- command: String, especifica l'ordre a executar
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- (Integer pid, NArray output, Variant stdout, Variant stderr, Integer status, Variant error), retorna el resultat en execució del procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"stdio": Array | String, // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
fork
Executar un mòdul en un procés fill
1
2
3static ChildProcess child_process.fork(String module,
Array args,
Object options = {});
Paràmetres de trucada:
- module: String, especifica l'ordre a executar
- args: Matriu, especifica la llista de paràmetres de cadena
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- ChildProcess, retorna l'objecte de procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"stdio": Array | String, // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
Executar un mòdul en un procés fill
1
2static ChildProcess child_process.fork(String module,
Object options = {});
Paràmetres de trucada:
- module: String, especifica l'ordre a executar
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- ChildProcess, retorna l'objecte de procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9
10{
"cwd": "", // working directory of the child process, default to current directory
"stdio": Array | String, // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
run
Executeu directament el fitxer especificat i retorneu l'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: String, especifica l'ordre a executar
- args: Matriu, especifica la llista de paràmetres de cadena
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- Integer, retorna el codi de sortida del procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9{
"cwd": "", // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}
Executeu directament el fitxer especificat i retorneu l'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: String, especifica l'ordre a executar
- options: Objecte, especifica els paràmetres de creació
Resultats de retorn:
- Integer, retorna el codi de sortida del procés fill
Les opcions admeses són les següents:
1
2
3
4
5
6
7
8
9{
"cwd": "", // working directory of the child process, default to current directory
"env": {}, // key-value pairs of environment variables to add to the child's environment
"detached": false, // child process will be a leader of a new process group, default to false
"uid": 0, // configure the user identity of the process
"gid": 0, // con
"windowsVerbatimArguments": false, // do not execute any quote or escape processing on Windows. Ignored on Unix. When specified, the command line string is passed directly to the underlying operating system shell without any processing whatsoever. This is set to true automatically when the shell option is specified and is CMD.
"windowsHide": false // hide the subprocess console window that would normally be created on Windows systems. This option has no effect on non-Windows systems.
}