title: Hudson "stop" / cancel build leaving processes behind
body: <p>We have an automated build, managed by Hudson (1.312), that's got a few layers.  On the slaves:</p>
  
  <ul>
  <li>codewarrior cc/ld and other tools (some in-house), run by</li>
  <li>a few recursive Cygwin GNU make 3.81 instances, run by</li>
  <li>Hudson "execute windows batch command" (so cmd.exe running a batch file that hudson creates, as near as I can tell), run by</li>
  <li>Hudson service, running as a domain user (not LocalService), started on</li>
  <li>a Windows XP (32-bit) machine</li>
  </ul>
  
  <p>The master is an OSX machine running a stock Tomcat.</p>
  
  <p>The problem: the "cancel build" button (little red X that leads to a "stop" URL) doesn't take out make or any of its subprocesses.  As far as the Hudson UI is concerned, the job stopped successfully, but there are still make.exe and cc/ld processes running.  This can cause serious problems if the build starts again in the same workspace.</p>
  
  <p>Is there a "best practice" for getting all of these processes to shut down?</p>
  
  <p>(Before anyone suggests a less Frankensteinian build management framework like ant, jam, maven, etc -- we're migrating to jam, somewhat successfully!  While we're getting the kinks sorted out, we need to have builds killable on the current system, though.)</p>