pipe base R function, to return the process
id of the started process, and set its standard output and error
streams. The process id is then used to manage the process.
p <- process$new(command = NULL, args, commandline = NULL,
stdout = TRUE, stderr = TRUE, cleanup = TRUE) p$is_alive()
p$kill(grace = 0.1)
p$wait()
p$get_exit_status()
p$restart() p$read_output_lines(...)
p$read_error_lines(...)
p$can_read_output()
p$can_read_error()
p$is_eof_output()
p$is_eof_error()
p$get_output_connection()
p$get_error_connection() print(p)
$new() starts a new process, it uses pipe.
R does not wait for the process to finish, but returns
immediately. $is_alive() checks if the process is alive. Returns a logical
scalar. $kill() kills the process. It also kills all of its child
processes. First it sends the child processes a TERM signal, and
then after a grace period a KILL signal. Then it does the same
for the process itself. A killed process can be restarted using the
restart method. It returns the process itself. $wait() waits until the process finishes. Note that if the
process never finishes, then R will never regain control. It returns
the process itself. $get_exit_code returns the exit code of the process if it has
finished and wait was called on it. Otherwise it will return
NULL. $restart() restarts a process. It returns the process itself. $read_output_lines() reads from standard output of the process.
If the standard output was not requested, then it returns an error.
It uses a non-blocking text connection. $read_error_lines() is similar to $read_output_lines, but
it reads from the standard error stream. $can_read_output() checks if there is any standard output
immediately available. $can_read_error() checks if there is any standard error
immediately available. $is_eof_output() checks if the standard output stream has
ended. This means that the process is finished and all output has
been processed. $is_eof_error() checks if the standard error stream has
ended. This means that the process is finished and all output has
been processed. $get_output_connection() returns a connection object, to the
standard output stream of the process. $get_error_conneciton() returns a connection object, to the
standard error stream of the process. print(p) or p$print() shows some information about the
process on the screen, whether it is running and it's process id, etc.# CRAN does not like long-running examples
## Not run:
# p <- process$new("sleep", "2")
# p$is_alive()
# p
# p$kill()
# p$is_alive()
#
# p$restart()
# p$is_alive()
# Sys.sleep(3)
# p$is_alive()
# ## End(Not run)
Run the code above in your browser using DataLab