R 可以解释 SIGINT/SIGTERM 并作为结果执行进程吗?

问题描述 投票:0回答:2

是否有办法从 R 中的 shell 捕获 SIGINT 或 SIGTERM,以便我可以尝试执行一些优雅的退出代码?

到目前为止,我在搜索中还没有找到任何东西。

r sigint sigterm
2个回答
0
投票

自从你问以来已经有一段时间了,与此同时有人在一个包中解决了这个问题:

https://github.com/atheriel/sigterm

来自自述文件:

sigterm 是一个非常简单的包,它提供了一种方法来实现响应 SIGTERM 的此类操作:当加载包时,它将安装一个信号处理程序,以防止 R 立即退出。然后,用户可以定期检查是否已收到 SIGTERM 信号并做出适当响应。


0
投票

这对我有用

tryCatch({
  expr
}, interrupt = function(i) {
  do cleanup...
})

这将捕获

SIGINT
,可以通过在 Dockerfile

中包含以下内容来在容器上下文中使用它
STOPSIGNAL SIGINT
© www.soinside.com 2019 - 2024. All rights reserved.