lib/utils.rb in SimBot-0.1.4 vs lib/utils.rb in SimBot-0.1.5
- old
+ new
@@ -17,7 +17,31 @@
# fetch bch/xrp price from coin market cap
response = RestClient.get('https://api.coinmarketcap.com/v2/ticker/1765/?convert=ETH')
hash = JSON.parse (response.body)
return hash['data']['quotes']['ETH']['price'].to_f.round(4)
end
+
+ # Try and read the existing pid from the pid file and signal the
+ # process. Returns true for a non blocking status.
+ def self.kill_process(pid)
+ opid = File.read("#{pid}.pid").strip.to_i
+ Process.kill "HUP", opid
+ File.delete("#{pid}.pid")
+ File.delete("#{pid}.outfile")
+ File.delete("#{pid}.errfile")
+ puts "Stopped process #{pid}"
+ true
+ rescue Errno::ENOENT
+ $stdout.puts "#{pid} did not exist: Errno::ENOENT"
+ true
+ rescue Errno::ESRCH
+ $stdout.puts "The process #{opid} did not exist: Errno::ESRCH"
+ true
+ rescue Errno::EPERM
+ $stderr.puts "Lack of privileges to manage the process #{opid}: Errno::EPERM"
+ false
+ rescue ::Exception => e
+ $stderr.puts "While signaling the PID, unexpected #{e.class}: #{e}"
+ false
+ end
end