在R中终止(优雅地)MonetDB进程

时间:2015-03-20 23:34:02

标签: r shiny monetdb r-dbi

我在各种平台(例如OS X和Linux Centos)上使用MonetDB,并且应用程序很闪亮。

很难一直断开数据库,因此目前我的方法是在不断开数据库的情况下终止闪亮的应用程序。

这意味着在访问数据之前闪亮的应用程序尝试使用以下命令停止任何“旧”进程:

monetdb.server.stop(pid)

从命令的来源我理解它基本上会杀死与提供的pid相关联的进程(这意味着运行应用程序的用户必须能够访问kill函数)

有些时候这样可以正常工作,但有时当我尝试再次启动MonetDB时,我会得到

!FATAL: GDKlockHome: Database lock '.gdk_lock' denied

Warning in socketConnection(host = host, port = port, blocking = TRUE, open = "r+b",  :
  localhost:50000 cannot be opened
Error in socketConnection(host = host, port = port, blocking = TRUE, open = "r+b",  : 
  cannot open the connection

有没有办法避免这个错误(没有强行断开数据库的所有时间我用它闪亮)?

1 个答案:

答案 0 :(得分:2)

MonetDB关闭确实需要几秒钟。如果同时在同一dbfarm目录上启动了新进程,则会出现!FATAL: GDKlockHome: Database lock '.gdk_lock' denied错误。我正在考虑向wait添加monetdb.server.stop参数。

所以在此期间,在服务器再次启动之前稍等一下是个好主意。否则,请考虑使用monetdbd来管理MonetDB服务器。