gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 15:35:47 26 4
gpt4 key购买 nike

我目前正在使用 Scala 进程 API scala.sys.process但是,我似乎无法弄清楚如何 优雅终止对 SIGTERM 信号作出 react 的进程。我以前在 python 中做过,那里有漂亮的 terminatesend_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++ 进程总是被拖到外面并被 Gunicorn ,而不是被要求停止。

最佳答案

斯卡拉 Process stuff 基于 Java,因此受到相同的限制。 Java 提供了一个非常糟糕的接口(interface)。也许它可以在更多系统上使用相同的界面,但它对那些在 Posix 系统上工作的人来说是难以置信的限制。

关于scala - 如何优雅地终止从 scala 创建的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com