StartProcess
StartProcess["executable"]
executes an external program, yielding a ProcessObject to represent the resulting subprocess.
StartProcess[{"executable",arg1,arg2,…}]
executes an external program, passing it the specified arguments argi.
Details
- 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 StartProcess[{"executable",arg1,arg2,…}], the argi 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:
-
ProcessDirectory Inherited initial working directory ProcessEnvironment Inherited environment 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 argi are of the form "name"->value, they will be converted into the form "--name=value". If name is a single character, only one dash will be used.
Examples
open allclose allBasic Examples (1)
Possible Issues (4)
The right way to call StartProcess for a program plus its arguments is using a list:
Calling StartProcess with the command and arguments in a single string is not allowed:
Also, calling StartProcess with the program arguments as arguments for StartProcess is not allowed:
Special symbols like ~ and * are not converted using shell expansion, because StartProcess skips the shell:
Shell commands like dir, echo cannot be called directly on Windows because they are not binaries (however, they work on Unix systems because they are Unix binaries):
Interactive Examples (1)
Text
Wolfram Research (2014), StartProcess, Wolfram Language function, https://reference.wolfram.com/language/ref/StartProcess.html.
CMS
Wolfram Language. 2014. "StartProcess." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/StartProcess.html.
APA
Wolfram Language. (2014). StartProcess. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/StartProcess.html