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