如何让R在被杀死时保存其状态?

如何让R在被杀死时保存其状态?,r,R,我想分配一些在R被终止时运行的代码,例如,save(list=ls(),file=“dump.RData”)。我认为这是通过捕获信号来实现的,例如中提到的SIGTERM,但在?条件中没有关于外壳信号的内容 ?条件确实提到了用户中断;例如,您可以使用调用处理程序(Sys.sleep(10),interrupt=function(e){cat(“我看到了。\n”)})的捕捉Ctrl-C,,但这不捕捉SIGTERM 我该怎么做呢?事实上,如果您将SIGUSR1发送到R进程,它将转储工作区并停止。在Li

我想分配一些在R被终止时运行的代码,例如,
save(list=ls(),file=“dump.RData”)
。我认为这是通过捕获信号来实现的,例如中提到的
SIGTERM
,但在
?条件中没有关于外壳信号的内容

?条件
确实提到了用户中断;例如,您可以使用调用处理程序(Sys.sleep(10),interrupt=function(e){cat(“我看到了。\n”)})的
捕捉
Ctrl-C
,但这不捕捉SIGTERM


我该怎么做呢?

事实上,如果您将
SIGUSR1
发送到R进程,它将转储工作区并停止。在Linux上,您可以使用

kill -USR1 Rpid
其中,
Rpid
是要停止的R实例的进程id。例如,您可以通过
pgrep
找到它

如果R在终端中运行,您可以使用
CTRL-Z
中断它,然后键入

kill -USR1 %

我读到的信息表明,当进程被该信号终止时,R不会得到通知。@BondedDust啊,对了,我是说SIGTERM。编辑。但是,如果它能捕捉到另一个信号,那么它也能捕捉到;希望我说的是对的。