I am currently using the scala process API scala.sys.process
but, I can't seem to figure out how to gracefully terminate a process that react to the SIGTERM signal. I've done it in python before where there are pretty terminate
and send_signal
function on the process, but on the scala scala.sys.process.Process
object, all I see is destroy
. To me it look like scala will nuke my process from orbit, just to be sure, and thats not what I want.
How can I tell this process that it should clean itself and exit from my scala code?
val launcher = Process("myprocess", Seq("args"))
val process = launcher.run()
process.destroy() //Err... no? terminate or equivalent like in python please?
EDIT
For more detail : My scala process is launching a C++ subprocess, that listen to signal handler (SIGTERM, SIGKILL and the like) to know when to exit. It has been well tested and it clean itself correctly. My problem is that I don't know how to send that signal from my scala application! Thus, my C++ process always get dragged outside and shot instead of just being asked to stop.
Scala Process
stuff is based on Java's, and, therefore, subject to the same limitations. Java provides a very poor interface. Perhaps it makes it possible to use the same interface on more systems, but it is incredibly limiting to those working on Posix systems.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With