#!/usr/bin/env ruby # frozen_string_literal: true require 'optparse' require 'etc' @children = [] children = 5 if children == 1 require 'legion' require 'legion/process' Legion.start Legion::Process.new(options).run! else children.times do @children.push( Process.fork do require 'legion' require 'legion/process' Legion.start sleep(1) Legion::Process.new(options).run! end ) sleep(5) end @quit = false trap('SIGINT') do @quit = true @children.each do |child| Process.kill('SIGINT', child) end sleep(0.5) end trap('SIGTERM') do @children.each do |child| Process.kill('SIGTERM', child) end sleep(1) end sleep(1) until @quit end sleep(2)