run {processx} | R Documentation |
run
provides an interface similar to base::system()
and
base::system2()
, but based on the process class. This allows some
extra features, see below.
run(command = NULL, args = character(), commandline = NULL, error_on_status = TRUE, echo_cmd = FALSE, echo = FALSE, spinner = FALSE, timeout = Inf, stdout_line_callback = NULL, stdout_callback = NULL, stderr_line_callback = NULL, stderr_callback = NULL, windows_verbatim_args = FALSE, windows_hide_window = FALSE)
command |
Character scalar, the command to run. It will be escaped via base::shQuote. |
args |
Character vector, arguments to the command. They will be escaped via base::shQuote. |
commandline |
A character scalar, a full command line. No escaping will be performed on it. |
error_on_status |
Whether to throw an error if the command returns
with a non-zero status, or it is interrupted. The error clases are
|
echo_cmd |
Whether to print the command to run to the screen. |
echo |
Whether to print the standard output and error to the screen. Note that the order of the standard output and error lines are not necessarily correct, as standard output is typically buffered. |
spinner |
Whether to show a reassusing spinner while the process is running. |
timeout |
Timeout for the process, in seconds, or as a |
stdout_line_callback |
|
stdout_callback |
|
stderr_line_callback |
|
stderr_callback |
|
windows_verbatim_args |
Whether to omit the escaping of the command and the arguments on windows. Ignored on other platforms. |
windows_hide_window |
Whether to hide the window of the application on windows. Ignored on other platforms. |
run
supports
Specifying a timeout for the command. If the specified time has passed, and the process is still running, it will be killed (with all its child processes).
Calling a callback function for each line or each chunk of the standard output and/or error. A chunk may contain multiple lines, and can be as short as a single character.
A list with components:
status The exit status of the process. If this is NA
, then the
process was killed and had no exit status.
stdout The standard output of the command, in a character scalar.
stderr The standard error of the command, in a character scalar.
timeout Whether the process was killed because of a timeout.
Some notes about the callback functions. The first argument of a
callback function is a character scalar (length 1 character), a single
output or error line. The second argument is always the process
object. You can manipulate this object, for example you can call
$kill()
on it to terminate it, as a response to a message on the
standard output or error.
## Different examples for Unix and Windows ## Not run: if (.Platform$OS.type == "unix") { run("ls") system.time(run(commandline = "sleep 10", timeout = 1, error_on_status = FALSE)) system.time( run( commandline = "for i in 1 2 3 4 5; do echo $i; sleep 1; done", timeout=2, error_on_status = FALSE ) ) } else { run(commandline = "ping -n 1 127.0.0.1") run(commandline = "ping -n 6 127.0.0.1", timeout = 1, error_on_status = FALSE) } ## End(Not run)