加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何优雅地终止从scala创建的进程

发布时间:2020-12-16 18:43:20 所属栏目:安全 来源:网络整理
导读:我目前正在使用 scala进程API scala.sys.process但是,我似乎无法弄清楚如何优雅地终止对SIGTERM信号做出反应的进程.我已经在 python中完成了之前,在进程上有非常终止和send_signal函数,但在scala scala.sys.process.Process对象上,我看到的只是destroy.对我
我目前正在使用 scala进程API scala.sys.process但是,我似乎无法弄清楚如何优雅地终止对SIGTERM信号做出反应的进程.我已经在 python中完成了之前,在进程上有非常终止和send_signal函数,但在scala scala.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进程总是被拖到外面拍摄而不是被要求停止.

解决方法

Scala Process的东西基于Java,因此受到相同的限制. Java提供了一个非常糟糕的接口.也许它可以在更多系统上使用相同的界面,但它对那些在Posix系统上工作的人来说是非常有限的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读