         # get child process pids
         childPids = out.split(/\s+/)
                       .filter (pid) -> /^\d+$/.test(pid)
-                      .map (pid) -> parseInt(pid)
+                      .map    (pid) -> parseInt(pid)
                       .filter (pid) -> pid isnt parentPid and 0 < pid < Infinity
         # recursively kill child processes
         for childPid in childPids
           @killProcessOnWin32(childPid)
         # kill parent process
-        try process.kill(parentPid)
+        try process.kill(parentPid,'SIGINT')
     catch error
       # TODO show proper error notification here
       console.log("Spawn error")

      # execSync returns an error if the process has no childs, so we ignore
      # this error here and continue with an empty childPids array
      childPids = []

    # recursively kill child processes
    for childPid in childPids
      @killProcessOnDarwinAndLinux(childPid)

    # kill parent process
    try process.kill(parentPid)

  # NOTE stolen from Atom's BufferedNodeProcess API (Oops!)
  killProcessOnWin32: (parentPid) ->
    try
      wmicProcess = child_process.spawn 'wmic', [
        'process'
        'where'
        "(ParentProcessId=#{parentPid})"
        'get'
        'processid'
      ]
      out = ''
      wmicProcess.stdout.on 'data', (data) ->

        when 'darwin' then @killProcessOnDarwinAndLinux(@process.pid)
        when 'linux'  then @killProcessOnDarwinAndLinux(@process.pid)
        when 'win32'  then @killProcessOnWin32(@process.pid)

  ## Killing processes ---------------------------------------------------------

