Modul Grundmodul

Modul child_process

Modul zur Unterprozessverwaltung

Zitat:

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

Beim Erstellen eines untergeordneten Prozesses wird die Option „options.stdio“ verwendet, um die zwischen dem übergeordneten Prozess und dem untergeordneten Prozess eingerichtete Pipe zu konfigurieren. Standardmäßig werden stdin, stdout und stderr des untergeordneten Prozesses umgeleitetChildProcessDie entsprechenden stdin-, stdout- und stderr-Streams für das Objekt. Dies entspricht der Einstellung von options.stdio auf ['pipe', 'pipe', 'pipe'].

Der Einfachheit halber kann options.stdio eine der folgenden Zeichenfolgen sein:

  • 'pipe': Entspricht ['pipe', 'pipe', 'pipe'] (Standard).
  • 'ignore': Entspricht ['ignore', 'ignore', 'ignore'].
  • 'erben': entspricht ['erben', 'erben', 'erben'] oder [0, 1, 2].
  • 'pty': entspricht ['pty', 'pty', 'pty']. Windows wird nicht unterstützt.

Andernfalls muss der Wert von options.stdio ein Array sein (wobei jeder Index einem Dateideskriptor im untergeordneten Prozess entspricht). Die Dateideskriptoren 0, 1 und 2 entsprechen stdin, stdout bzw. stderr. Andere Dateideskriptoren können angegeben werden, um andere Pipes zwischen dem übergeordneten Prozess und dem untergeordneten Prozess zu erstellen. Der Wert kann einer der folgenden sein:

  1. 'Pipe': Erstellen Sie eine Pipe zwischen dem untergeordneten Prozess und dem übergeordneten Prozess. Das übergeordnete Ende der Pipe wird dem übergeordneten Prozess als stdio[fd]-Attribut im child_process-Objekt angezeigt. Für die Dateideskriptoren 0, 1 und 2 erstellte Pipes sind auch als stdin, stdout bzw. stderr verfügbar.
  2. 'ignore': Weist fibjs an, Dateideskriptoren in untergeordneten Prozessen zu ignorieren. Obwohl fibjs immer die Dateideskriptoren 0, 1 und 2 für seine erzeugten Prozesse öffnet, führt das Setzen des Dateideskriptors auf „ignorieren“ dazu, dass fibjs /dev/null öffnet und es an den Dateideskriptor des untergeordneten Prozesses anhängt.
  3. 'erben': Streamen Sie das entsprechende stdio zum oder vom übergeordneten Prozess. In den ersten drei Positionen entspricht diesprocess.stdin,process.stdoutUndprocess.stderr. In jeder anderen Position gleichbedeutend mit „ignorieren“.
  4. 'pty': Der untergeordnete Prozess wird in einem virtuellen Terminal ausgeführt. Derzeit sind nur stdin und stdout gültig.
  5. Positive Ganzzahl: Der Ganzzahlwert wird als aktuell im übergeordneten Prozess geöffneter Dateideskriptor interpretiert. Es wird mit dem untergeordneten Prozess geteilt, ähnlich wie beim Teilen von <Stream> Objektweg. Eingehende Sockets werden unter Windows nicht unterstützt.
  6. null oder undefiniert: Verwenden Sie den Standardwert. Pipes werden für die Dateideskriptoren 0, 1 und 2 von stdio (mit anderen Worten stdin, stdout und stderr) erstellt. Für Dateideskriptoren 3 und höher ist die Standardeinstellung „ignorieren“.
1 2 3 4 5 6 7 8 9 10 11 12 13
const { 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] });

Bitte beachten Sie dies für Benutzer, die auch NodeJS verwenden

  • child_process.exec(command, args)Die Funktion der gleichnamigen API von fibjs ähnelt der von nodejs, unter Windows wird cmd.exe jedoch nicht automatisch als Ausführungsumgebung für Befehlsparameter verwendet.
  • fibjs's child_process.[spawn|exec|execFile|run] ist eine Funktion im asynchronen Stil, die Synchronisation/Rückruf integriert:
    • Wenn der letzte Parameter keine Funktion ist, wird er synchronisiert
    • Wird als letzter Parameter eine Funktion übergeben, ist diese asynchron;
  • Das Rückgabeergebnis von fibjs's child_process.[exec|execFile] ist ein Objekt, das sich völlig von dem Objekt unterscheidet, das von der NodeJS-API mit demselben Namen zurückgegeben wird.
  • fibjs child_process.runhat keine entsprechende API in nodejs

statische Funktion

spawn

Veröffentlichen Sie einen untergeordneten Prozess mit dem angegebenen Befehl

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

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • args: Array, gibt die String-Parameterliste an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • ChildProcess, gibt das untergeordnete Prozessobjekt zurück

Folgende Optionen werden unterstützt:

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. }

Veröffentlichen Sie einen untergeordneten Prozess mit dem angegebenen Befehl

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

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • ChildProcess, gibt das untergeordnete Prozessobjekt zurück

Folgende Optionen werden unterstützt:

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

Führen Sie einen Befehl in der Shell aus und puffern Sie die Ausgabe. Bei Ausführung im Rückrufmodus gibt die Funktion das untergeordnete Prozessobjekt zurück

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

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • (Variant stdout, Variant stderr) gibt den stdio-Ausgabeinhalt des untergeordneten Prozesses zurück

Folgende Optionen werden unterstützt:

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

Führen Sie die angegebene Datei direkt aus und puffern Sie die Ausgabe. Bei Ausführung im Rückrufmodus gibt die Funktion das untergeordnete Prozessobjekt zurück.

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

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • args: Array, gibt die String-Parameterliste an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • (Variant stdout, Variant stderr) gibt den stdio-Ausgabeinhalt des untergeordneten Prozesses zurück

Folgende Optionen werden unterstützt:

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. }

Führen Sie die angegebene Datei direkt aus und puffern Sie die Ausgabe. Bei Ausführung im Rückrufmodus gibt die Funktion das untergeordnete Prozessobjekt zurück.

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

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • (Variant stdout, Variant stderr) gibt den stdio-Ausgabeinhalt des untergeordneten Prozesses zurück

Folgende Optionen werden unterstützt:

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

Veröffentlichen Sie einen untergeordneten Prozess mit dem angegebenen Befehl

1 2 3
static (Integer pid, NArray output, Variant stdout, Variant stderr, Integer status, Variant error) child_process.spawnSync(String command, Array args, Object options = {}) async;

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • args: Array, gibt die String-Parameterliste an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • (Integer pid, NArray-Ausgabe, Variant stdout, Variant stderr, Integer-Status, Variant-Fehler) gibt das Ergebnis der Ausführung des untergeordneten Prozesses zurück

Folgende Optionen werden unterstützt:

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. }

Veröffentlichen Sie einen untergeordneten Prozess mit dem angegebenen Befehl

1 2
static (Integer pid, NArray output, Variant stdout, Variant stderr, Integer status, Variant error) child_process.spawnSync(String command, Object options = {}) async;

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • (Integer pid, NArray-Ausgabe, Variant stdout, Variant stderr, Integer-Status, Variant-Fehler) gibt das Ergebnis der Ausführung des untergeordneten Prozesses zurück

Folgende Optionen werden unterstützt:

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

Führen Sie ein Modul in einem untergeordneten Prozess aus

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

Aufrufparameter:

  • module: String, gibt den auszuführenden Befehl an
  • args: Array, gibt die String-Parameterliste an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • ChildProcess, gibt das untergeordnete Prozessobjekt zurück

Folgende Optionen werden unterstützt:

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. }

Führen Sie ein Modul in einem untergeordneten Prozess aus

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

Aufrufparameter:

  • module: String, gibt den auszuführenden Befehl an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • ChildProcess, gibt das untergeordnete Prozessobjekt zurück

Folgende Optionen werden unterstützt:

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

Führen Sie die angegebene Datei direkt aus und geben Sie den ExitCode zurück. Bei Ausführung im Rückrufmodus gibt die Funktion das untergeordnete Prozessobjekt zurück.

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

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • args: Array, gibt die String-Parameterliste an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • Integer, gibt den ExitCode des untergeordneten Prozesses zurück

Folgende Optionen werden unterstützt:

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. }

Führen Sie die angegebene Datei direkt aus und geben Sie den ExitCode zurück. Bei Ausführung im Rückrufmodus gibt die Funktion das untergeordnete Prozessobjekt zurück.

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

Aufrufparameter:

  • command: String, gibt den auszuführenden Befehl an
  • options: Objekt, Erstellungsparameter angeben

Rückgabeergebnisse:

  • Integer, gibt den ExitCode des untergeordneten Prozesses zurück

Folgende Optionen werden unterstützt:

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. }