Class: MQueue::Daemon
- Inherits:
-
Object
- Object
- MQueue::Daemon
- Defined in:
- lib/m_queue/daemon.rb
Constant Summary collapse
- PID_DIR =
File.join(MQUEUE_ROOT, 'tmp', 'pids')
Class Method Summary collapse
Class Method Details
.daemonize!(name) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/m_queue/daemon.rb', line 6 def daemonize!(name) fork do Process.setsid exit if fork store_pid(Process.pid, name) Dir.chdir File.dirname(__FILE__) puts "created PID: #{Process.pid}" File.umask 0000 STDIN.reopen "/dev/null" STDOUT.reopen "/dev/null", "a" STDERR.reopen STDOUT trap("TERM") { exit } yield if block_given? end end |
.kill!(name) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/m_queue/daemon.rb', line 22 def kill!(name) Dir[pid_path(name)].each do |f| begin puts f pid = IO.read(f).chomp.to_i FileUtils.rm f Process.kill(15, pid) # TERM puts "killed PID: #{pid}" rescue => e puts "Failed to kill! #{f}: #{e}" end end true end |
.kill_all! ⇒ Object
37 38 39 |
# File 'lib/m_queue/daemon.rb', line 37 def kill_all! kill!('*') end |