Sha256: 0582aaf329f3505bf44bd0fa353c4cbed7fb91980a0c3d6d3f5fae4925b6adaf

Contents?: true

Size: 705 Bytes

Versions: 10

Compression:

Stored size: 705 Bytes

Contents

# run command/block as a background daemon
module Wunderbar
  def submit(cmd=nil)
    fork do
      # detach from tty
      Process.setsid
      fork and exit

      # clear working directory and mask
      Dir.chdir '/'
      File.umask 0000

      # close open files
      STDIN.reopen '/dev/null'
      STDOUT.reopen '/dev/null', 'a'
      STDERR.reopen STDOUT

      # clear environment of cgi cruft
      ENV.keys.to_a.each do |key|
        ENV.delete(key) if key =~ /HTTP/ or $cgi.respond_to? key.downcase
      end

      # setup environment
      ENV['USER'] ||= $USER
      ENV['HOME'] ||= $HOME

      # run cmd and/or block
      system cmd if cmd
      yield if block_given?
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
wunderbar-0.10.0 lib/wunderbar/job-control.rb
wunderbar-0.9.0 lib/wunderbar/job-control.rb
wunderbar-0.8.14 lib/wunderbar/job-control.rb
wunderbar-0.8.13 lib/wunderbar/job-control.rb
wunderbar-0.8.12 lib/wunderbar/job-control.rb
wunderbar-0.8.11 lib/wunderbar/job-control.rb
wunderbar-0.8.10 lib/wunderbar/job-control.rb
wunderbar-0.8.9 lib/wunderbar/job-control.rb
wunderbar-0.8.8 lib/wunderbar/job-control.rb
wunderbar-0.8.7 lib/wunderbar/job-control.rb