killNode | R Documentation |
Terminate one or more cluster nodes using process signaling
killNode(x, signal = tools::SIGTERM, ...)
x |
cluster or cluster node to terminate. |
signal |
An integer that specifies the signal level to be sent
to the parallel R process.
It's only With the exception for MS Windows, as explained below, using When using Importantly, contrary to Linux and macOS, it is not possible to get a
cluster node running on MS Windows to exit gracefully. For example,
despite using |
... |
Not used. |
Note that the preferred way to terminate a cluster is via
parallel::stopCluster()
, because it terminates the cluster nodes
by kindly asking each of them to nicely shut themselves down.
Using killNode()
is a much more sever approach. It abruptly
terminates the underlying R process, possibly without giving the
parallel worker a chance to terminate gracefully. For example,
it might get terminated in the middle of writing to file.
tools::pskill()
is used to send the signal to the R process hosting
the parallel worker.
If signal = tools::SIGTERM
is used and success, this function
will also close any existing socket connection to the node, if they
exist. Moreover, if the node is running on the local host, this
function will also attempt to remove the node's temporary directory,
which is done because the node's R process might not have been exited
gracefully.
TRUE if the signal was successfully applied, FALSE if not, and NA if signaling is not supported on the specific cluster or node. Warning: With R (< 3.5.0), NA is always returned. This is due to a bug in R (< 3.5.0), where the signaling result cannot be trusted.
This function works only with cluster nodes of class RichSOCKnode
,
which were created by makeClusterPSOCK()
. It does not work when
using parallel::makeCluster()
and friends.
Use isNodeAlive()
to check whether one or more cluster nodes are alive.
cl <- makeClusterPSOCK(2)
print(isNodeAlive(cl)) ## [1] TRUE TRUE
res <- killNode(cl)
print(res)
## It might take a moment before the background
## workers are shutdown after having been signaled
Sys.sleep(1.0)
print(isNodeAlive(cl)) ## [1] FALSE FALSE
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.