 
       do killone = ->
         victim_index = parseInt Math.random() * (child_processes.length - 1)
-        child_processes[victim_index].kill 'SIGHUP'
+        allowed_signals = ['SIGINT', 'SIGHUP', 'SIGUSR2']
+        random_signal = -> allowed_signals[parseInt Math.random() * allowed_signals.length]
+        child_processes[victim_index].kill random_signal()
         setTimeout killone, 100
 
       do stats = ->

  it "Should All Be Processed on a Interrupt and Respawn Environment", (done) ->
    exiting = off
    exec "rm -f #{__dirname}/workers/*.dmp", (err, stdout, stderr) ->
      workers_left = total_workers
      child_processes = []
      while --workers_left >= 0
        do (workers_left) ->
          child_processes[workers_left] = exec "coffee #{__dirname}/workers/fail-and-block.coffee #{task_name}"
          child_processes[workers_left].on 'exit', ->
            return if exiting
            child_processes[workers_left] = exec "coffee #{__dirname}/workers/fail-and-block.coffee #{task_name}"

      do reschedule = ->
        queue.reschedule (err, statistics) ->

              queue.statistics (err, statistics) ->
                if statistics.finished_tasks is total_tasks and statistics.pending_tasks is 0
                  exiting = on
                  console.log ", #{killed} workers killed, #{statistics.workers} alive"
                  done()
            , 100
          else
