Class: Trema::Process
- Inherits:
-
Object
- Object
- Trema::Process
- Defined in:
- ruby/trema/process.rb
Overview
A class responsible for terminating processes.
Class Method Summary collapse
-
.read(pid_file, name = nil) ⇒ Process
The object that encapsulates the process details.
Instance Method Summary collapse
-
#initialize(pid_file, name) ⇒ Process
constructor
A new instance of Process.
-
#kill! ⇒ void
kills an active process.
Constructor Details
#initialize(pid_file, name) ⇒ Process
Returns a new instance of Process.
47 48 49 50 51 52 53 54 55 56 |
# File 'ruby/trema/process.rb', line 47 def initialize pid_file, name @name = name @pid_file = pid_file begin @pid = IO.read( @pid_file ).chomp.to_i @uid = File.stat( @pid_file ).uid rescue @pid_file = nil end end |
Class Method Details
Instance Method Details
#kill! ⇒ void
This method returns an undefined value.
kills an active process.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'ruby/trema/process.rb', line 67 def kill! return if @pid_file.nil? return if dead? puts "Shutting down #{ @name }..." if $verbose 10.times do if @uid == 0 sh "sudo kill #{ @pid } 2>/dev/null" rescue nil else sh "kill #{ @pid } 2>/dev/null" rescue nil end return # return if dead? end raise "Failed to shut down #{ @name }" end |