killNode: Terminate one or more cluster nodes using process signaling

View source: R/killNode.R

killNodeR Documentation

Terminate one or more cluster nodes using process signaling


Terminate one or more cluster nodes using process signaling


killNode(x, signal = tools::SIGTERM, ...)



cluster or cluster node to terminate.


An integer that specifies the signal level to be sent to the parallel R process. It's only tools::SIGINT (2) and tools::SIGTERM (15) that are supported on all operating systems (i.e. Unix, macOS, and MS Windows). All other signals are platform specific, cf. tools::pskill().


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.


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.

Known limitations

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.

Currently, it's only possible to send signals to parallel workers, that is, cluster nodes, that run on the local machine. If attempted to use killNode() on a remote parallel workers, NA is returned and an informative warning is produced.

See Also

Use isNodeAlive() to check whether one or mode cluster nodes are alive.


cl <- makeClusterPSOCK(2)
print(isNodeAlive(cl))  ## [1] TRUE TRUE

res <- killNode(cl)

## It might take a moment before the background
## workers are shutdown after having been signaled

print(isNodeAlive(cl))  ## [1] FALSE FALSE

parallelly documentation built on May 31, 2023, 5:46 p.m.