<br><div class="gmail_quote">On Thu, Aug 25, 2011 at 4:51 PM, Paul Davis <span dir="ltr"><<a href="mailto:paul.joseph.davis@gmail.com">paul.joseph.davis@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
I'm not sure if this is the cleanest approach or not, but in CouchDB<br>
we place a shim between Erlang and the OS process that reports a cmd<br>
that can be passed to os:cmd to execute the process. There's a version<br>
for both Unix and Windows.<br>
<br>
The Unix version in its entirety (minus the license):<br>
<br>
    #! /bin/sh -e<br>
    echo "kill -9 $$"<br>
    exec $*<br>
<br>
<a href="https://github.com/apache/couchdb/tree/trunk/src/couchdb/priv/spawnkillable" target="_blank">https://github.com/apache/couchdb/tree/trunk/src/couchdb/priv/spawnkillable</a><br>
<div><div></div><div class="h5"><br>
On Thu, Aug 25, 2011 at 10:43 AM, Robert Raschke<br>
<<a href="mailto:rtrlists@googlemail.com">rtrlists@googlemail.com</a>> wrote:<br>
> Hi,<br>
><br>
> is it possible to explicitly kill an OS process that's been started with and<br>
> open_port({spawn_executable, "executable"}, ...) call from within Erlang?<br>
><br>
> This is on Windows for me just now, in case there is a way and it differs<br>
> between OSes.<br>
><br>
> Thanks,<br>
> Robby<br></div></div></blockquote><div><br>Yeah, I was staring down that alleyway and thought, there must be something better. 'Twould be nice if we had a port_close/2, that could take an option to choose between killing or detaching from the OS process. But I guess that's tricky, 'cause ports are so versatile.<br>
<br>Thanks for the link to the CouchDB approach, I might head down that route after all.<br><br>Robby<br></div></div>