如何让R在被杀死时保存其状态?
我想分配一些在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
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。编辑。但是,如果它能捕捉到另一个信号,那么它也能捕捉到;希望我说的是对的。