executes an external program, yielding a ProcessObject to represent the resulting subprocess.

executes an external program, passing it the specified arguments .


  • StartProcess returns a ProcessObject if the process it specifies can be started; otherwise, it returns $Failed.
  • StartProcess can be used to interact with processes while they are running or to run "background tasks" without blocking the Wolfram Engine.
  • StartProcess returns immediately and does not wait for the started process to complete. Use RunProcess to wait for a process to complete.
  • In , the are converted to strings using ToString.
  • The Wolfram Engine can communicate with a subprocess represented by a ProcessObject with functions like WriteLine, WriteString, BinaryWrite, ReadLine, ReadString, and BinaryRead.
  • The standard input, output, and error streams can be represented using ProcessConnection.
  • Information about the subprocess can be queried using ProcessStatus and ProcessInformation.
  • The following options can be given:
  • ProcessDirectoryInheritedinitial working directory
    ProcessEnvironmentInheritedenvironment variables to give the subprocess
  • By default, the subprocess will inherit its process directory and environment variables from the Wolfram Engine.
  • If the Wolfram Engine is terminated, the subprocess will be forced to close.
  • If any of the arguments are of the form "name"->value, they will be converted into the form . If name is a single character, only one dash will be used.

ExamplesExamplesopen allclose all

Basic Examples  (1)Basic Examples  (1)

Start the system shell process:

Click for copyable input

Write a command into the system shell process:

Click for copyable input

Read the command output:

Click for copyable input

Check whether the process is running or not:

Click for copyable input

Write an exit command into the shell process:

Click for copyable input

Verify the program has actually finished:

Click for copyable input
Introduced in 2014
Translate this page: