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.