我目前正在使用 scala 进程 API scala.sys.process
,但我似乎无法弄清楚如何优雅地终止对 SIGTERM 信号作出反应的进程。我已经在 python 中完成了它,在这个过程中有漂亮terminate
和send_signal
功能,但是在 scalascala.sys.process.Process
对象上,我看到的只是destroy
. 对我来说,看起来 scala 会从轨道上摧毁我的进程,只是为了确定,这不是我想要的。
我怎样才能告诉这个过程它应该清理自己并从我的 scala 代码中退出?
val launcher = Process("myprocess", Seq("args"))
val process = launcher.run()
process.destroy() //Err... no? terminate or equivalent like in python please?
编辑
更多细节:我的 scala 进程正在启动一个 C++ 子进程,它监听信号处理程序(SIGTERM、SIGKILL 等)以了解何时退出。它已经过很好的测试,并且可以正确清洁自己。我的问题是我不知道如何从我的 scala 应用程序发送该信号!因此,我的 C++ 进程总是被拖到外面并被枪杀,而不是被要求停止。