我需要杀死远程KDB +会话。这可以通过几种方式完成,但我更愿意使用IPC处理程序。如何通过脚本终止远程KDB +会话?
我开始KDB +会话:
$ q -p 5000
KDB+ 3.0 2012.11.13 Copyright (C) 1993-2012 Kx Systems
然后,我开始另一个KDB会话,我设法成功击杀服务器:
$ q
KDB+ 3.0 2012.11.13 Copyright (C) 1993-2012 Kx Systems
q)h: hopen `::5000
q)h(exit;0)
'close
q)\\
但是,如果我创建一个脚本(test.q )与上面的说明,它失败:
$ cat test.q
h: hopen `::5000
h(exit;0)
\\
$ q test.q
KDB+ 3.0 2012.11.13 Copyright (C) 1993-2012 Kx Systems
k){0N!x y}
'close
@
"q"
"h(exit;0)"
q))
任何想法?我真的很感激。
我alread我尝试了一个异步调用,没有发生错误,但它也没有关闭服务器。请记住,代码应该从脚本运行,而不是以交互模式运行。 – nunaxe
这很奇怪;它似乎对我来说很好(在Windows上)。在同步调用中使用受保护的eval将会起作用,但也会在等待远程进程关闭时挂起客户端的副作用。如果你有很多关闭的进程,这可能会很糟糕。 – mpud