Sha256: e0357df302123237ac496b8d0a703611b55df719c19269afec83f8fb587a8f0e

Contents?: true

Size: 636 Bytes

Versions: 14

Compression:

Stored size: 636 Bytes

Contents

# run command/block as a background daemon
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

Version data entries

14 entries across 14 versions & 2 rubygems

Version Path
wunderbar-0.8.6 lib/wunderbar/job-control.rb
wunderbar-0.8.5 lib/wunderbar/job-control.rb
wunderbar-0.8.4 lib/wunderbar/job-control.rb
wunderbar-0.8.3 lib/wunderbar/job-control.rb
wunderbar-0.8.2 lib/wunderbar/job-control.rb
wunderbar-0.8.1 lib/wunderbar/job-control.rb
wunderbar-0.8.0 lib/wunderbar/job-control.rb
cgi-spa-0.7.1 lib/cgi-spa/job-control.rb
cgi-spa-0.7.0 lib/cgi-spa/job-control.rb
cgi-spa-0.6.0 lib/cgi-spa/job-control.rb
cgi-spa-0.5.0 lib/cgi-spa/job-control.rb
cgi-spa-0.4.0 lib/cgi-spa/job-control.rb
cgi-spa-0.3.4 lib/cgi-spa/job-control.rb
cgi-spa-0.3.3 lib/cgi-spa/job-control.rb