Sha256: 0159cfa615819a217494194a76caefad4b848dcefa2c3fbeaf6a1660e6e7543d
Contents?: true
Size: 912 Bytes
Versions: 3
Compression:
Stored size: 912 Bytes
Contents
# frozen_string_literal: true require_relative "./string_support" module Fusuma # Rename process module CustomProcess attr_writer :proctitle def child_pids @child_pids ||= [] end def fork pid = Process.fork do Process.setproctitle(proctitle) set_trap # for child process yield end child_pids << pid pid end def shutdown child_pids.each do |pid| Process.kill("TERM", pid) rescue Errno::ESRCH # ignore end child_pids.each do |pid| Process.wait(pid) rescue Errno::ECHILD # ignore end end def proctitle @proctitle ||= self.class.name.underscore end def set_trap Signal.trap("INT") { shutdown exit } # Trap ^C Signal.trap("TERM") { shutdown exit } # Trap `Kill ` end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fusuma-3.3.0 | lib/fusuma/custom_process.rb |
fusuma-3.2.0 | lib/fusuma/custom_process.rb |
fusuma-3.1.0 | lib/fusuma/custom_process.rb |