我想分配一些代码,这些代码将在R被杀死时运行,例如save(list=ls(),file="dump.RData")
。我认为这是通过捕获信号,例如SIGTERM
中提到的?conditions
,但?conditions
中来自shell的信号没有任何内容。
Ctrl-C
确实提到了用户中断;你可以,例如使用withCallingHandlers( Sys.sleep(10), interrupt=function (e){cat("I saw that.\n")} )
抓住{
"_id":"",
"name":"",
"ObjectArray":[{
"url":"",
"value":""
}]
}
,但这并不会抓住SIGTERM。
我该怎么做?
答案 0 :(得分:0)
确实,如果您将SIGUSR1
发送到R进程,它将转储工作区并停止。在Linux上,您可以使用
kill -USR1 Rpid
其中Rpid
是您要停止的R实例的进程ID。例如,您可以使用pgrep
找到它。
如果R在终端中运行,您可以使用CTRL-Z
中断它,然后键入
kill -USR1 %