Module basismodule

module kind_proces

Module voor subprocesbeheer

Citaat:

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

Bij het maken van een onderliggend proces wordt de optie options.stdio gebruikt om de pijp te configureren die tot stand is gebracht tussen het bovenliggende proces en het onderliggende proces. Standaard worden de stdin, stdout en stderr van het onderliggende proces omgeleid naarChildProcessDe corresponderende stdin-, stdout- en stderr-streams op het object. Dit komt overeen met het instellen van options.stdio op ['pipe', 'pipe', 'pipe'].

Voor het gemak kan options.stdio een van de volgende tekenreeksen zijn:

  • 'pipe': Equivalent aan ['pipe', 'pipe', 'pipe'] (standaard).
  • 'negeren': Equivalent aan ['negeren', 'negeren', 'negeren'].
  • 'erven': equivalent aan ['erven', 'erven', 'erven'] of [0, 1, 2].
  • 'pty': gelijk aan ['pty', 'pty', 'pty']. Windows wordt niet ondersteund.

Anders moet de waarde van options.stdio een array zijn (waarbij elke index overeenkomt met een bestandsdescriptor in het onderliggende proces). Bestandsbeschrijvingen 0, 1 en 2 komen respectievelijk overeen met stdin, stdout en stderr. Andere bestandsdescriptors kunnen worden opgegeven om andere leidingen te creëren tussen het ouderproces en het onderliggende proces. De waarde kan een van de volgende zijn:

  1. 'pipe': Maak een pijp tussen het onderliggende proces en het bovenliggende proces. Het bovenliggende uiteinde van de pipe wordt aan het bovenliggende proces getoond als het stdio[fd]-attribuut op het child_process-object. Pipes die zijn gemaakt voor de bestandsdescriptors 0, 1 en 2 zijn ook beschikbaar als respectievelijk stdin, stdout en stderr.
  2. 'ignore': instrueert fibjs om bestandsdescriptors in onderliggende processen te negeren. Hoewel fibjs altijd de bestandsdescriptors 0, 1 en 2 zal openen voor de voortgebrachte processen, zorgt het instellen van de bestandsdescriptor op 'negeren' ervoor dat fibjs /dev/null opent en deze toevoegt aan de bestandsdescriptor van het onderliggende proces.
  3. 'inherit': Stream de corresponderende stdio naar of van het bovenliggende proces. In de eerste drie posities is dit gelijk aanprocess.stdin,process.stdoutEnprocess.stderr. In elke andere positie komt dit neer op 'negeren'.
  4. 'pty': het onderliggende proces wordt uitgevoerd in een virtuele terminal. Op dit moment zijn alleen stdin en stdout geldig.
  5. Positief geheel getal: de gehele waarde wordt geïnterpreteerd als de bestandsdescriptor die momenteel geopend is in het bovenliggende proces. Het wordt gedeeld met het onderliggende proces, vergelijkbaar met delen <Stream> Objectmanier. Inkomende sockets worden niet ondersteund in Windows.
  6. null of ongedefinieerd: gebruik de standaardwaarde. Er worden pijpen gemaakt voor de bestandsbeschrijvingen 0, 1 en 2 van stdio (met andere woorden stdin, stdout en stderr). Voor bestandsdescriptors 3 en hoger is de standaardwaarde 'negeren'.
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] });

Houd er rekening mee dat gebruikers die ook nodejs gebruiken

  • De functie van de API van fibjs child_process.exec(command, args)met dezelfde naam is vergelijkbaar met die van nodejs, maar op Windows wordt cmd.exe niet automatisch gebruikt als de uitvoeringsomgeving van de opdrachtparameter;
  • fibjs's child_process.[spawn|exec|execFile|run] is een functie in asynchrone stijl die synchronisatie/callback integreert:
    • Als de laatste parameter geen functie is, wordt deze gesynchroniseerd
    • Als een functie als laatste parameter wordt doorgegeven, is deze asynchroon;
  • Het geretourneerde resultaat van fibjs's child_process.[exec|execFile] is een object dat volledig verschilt van het object dat wordt geretourneerd door de nodejs API met dezelfde naam.
  • fibjs child_process.runheeft geen overeenkomstige API in nodejs

statische functie

spawn

Publiceer een onderliggend proces met het gegeven commando

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • args: Array, specificeert de lijst met stringparameters
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

De ondersteunde opties zijn als volgt:

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

Publiceer een onderliggend proces met het gegeven commando

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

De ondersteunde opties zijn als volgt:

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

Voer een commando uit in de shell en buffer de uitvoer. Wanneer uitgevoerd in de callback-modus, retourneert de functie het onderliggende procesobject

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

  • (Variant stdout, Variant stderr), retourneert de stdio-uitvoerinhoud van het onderliggende proces

De ondersteunde opties zijn als volgt:

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

Voer het opgegeven bestand rechtstreeks uit en buffer de uitvoer. Wanneer uitgevoerd in de callback-modus, retourneert de functie het onderliggende procesobject.

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • args: Array, specificeert de lijst met stringparameters
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

  • (Variant stdout, Variant stderr), retourneert de stdio-uitvoerinhoud van het onderliggende proces

De ondersteunde opties zijn als volgt:

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

Voer het opgegeven bestand rechtstreeks uit en buffer de uitvoer. Wanneer uitgevoerd in de callback-modus, retourneert de functie het onderliggende procesobject.

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

  • (Variant stdout, Variant stderr), retourneert de stdio-uitvoerinhoud van het onderliggende proces

De ondersteunde opties zijn als volgt:

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

Publiceer een onderliggend proces met het gegeven commando

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;

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • args: Array, specificeert de lijst met stringparameters
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

  • (Geheel getal pid, NArray-uitvoer, Variant stdout, Variant stderr, Integer status, Variantfout), retourneert het lopende resultaat van het onderliggende proces

De ondersteunde opties zijn als volgt:

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

Publiceer een onderliggend proces met het gegeven commando

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

  • (Geheel getal pid, NArray-uitvoer, Variant stdout, Variant stderr, Integer status, Variantfout), retourneert het lopende resultaat van het onderliggende proces

De ondersteunde opties zijn als volgt:

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

Voer een module uit in een onderliggend proces

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

Oproepparameters:

  • module: String, specificeert de opdracht die moet worden uitgevoerd
  • args: Array, specificeert de lijst met stringparameters
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

De ondersteunde opties zijn als volgt:

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

Voer een module uit in een onderliggend proces

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

Oproepparameters:

  • module: String, specificeert de opdracht die moet worden uitgevoerd
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

De ondersteunde opties zijn als volgt:

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

Voer het opgegeven bestand rechtstreeks uit en retourneer de exitCode. Wanneer deze wordt uitgevoerd in de callback-modus, retourneert de functie het onderliggende procesobject.

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • args: Array, specificeert de lijst met stringparameters
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

  • Integer, retourneert de exitCode van het onderliggende proces

De ondersteunde opties zijn als volgt:

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

Voer het opgegeven bestand rechtstreeks uit en retourneer de exitCode. Wanneer deze wordt uitgevoerd in de callback-modus, retourneert de functie het onderliggende procesobject.

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

Oproepparameters:

  • command: String, specificeert de opdracht die moet worden uitgevoerd
  • options: Object, geef aanmaakparameters op

Resultaten retourneren:

  • Integer, retourneert de exitCode van het onderliggende proces

De ondersteunde opties zijn als volgt:

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