Sha256: e30e4a764d645c10f533d27c31905e08401921c4e252b705e28ae85a90e8a960
Contents?: true
Size: 956 Bytes
Versions: 3
Compression:
Stored size: 956 Bytes
Contents
require 'daemons' module FireAndForget module Command class Fire < CommandBase attr_reader :niceness def niceness @task.niceness end def binary @task.binary end def cmd %(#{binary} #{FireAndForget.to_arguments(@params)}) end def valid? exists? && permitted? end def permitted? raise Errno::EACCES.new("'#{binary}' does not belong to user '#{ENV["USER"]}'") unless File.owned?(binary) true end def exists? raise Errno::ENOENT.new("'#{binary}'") unless File.exists?(binary) true end def run if valid? pid = fork do Daemons.daemonize(:backtrace => true) Process.setpriority(Process::PRIO_PROCESS, 0, niceness) if niceness > 0 exec(cmd) end Process.detach(pid) if pid pid end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
fire_and_forget-0.1.2 | lib/fire_and_forget/command/fire.rb |
fire_and_forget-0.1.1 | lib/fire_and_forget/command/fire.rb |
fire_and_forget-0.1.0 | lib/fire_and_forget/command/fire.rb |