lib/nephos-server/bin-helpers.rb in nephos-server-0.5.4 vs lib/nephos-server/bin-helpers.rb in nephos-server-0.6.1
- old
+ new
@@ -1,6 +1,7 @@
module Nephos
+
module Bin
# @param dir [String]
#
# The method check in the parameter directory:
@@ -16,9 +17,47 @@
return false if not File.exists? gfl
return false if not File.read(gfl).split.index("nephos-server")
return true
end
+ module Daemon
+
+ def self.started?
+ get_pid != nil
+ end
+
+ def self.kill!
+ d = get_pid
+ return false unless d
+ begin
+ Process::kill(10, d)
+ rescue => err
+ raise "Cannot kill #{d} !"
+ ensure
+ File.delete(get_pid_file)
+ end
+ return true
+ end
+
+ def self.detach!
+ Process::daemon(true, false)
+ File.write(get_pid_file, Process::pid.to_s)
+ end
+
+ def self.get_pid_file
+ return ".pid"
+ end
+
+ def self.get_pid
+ return nil if not File.exists?(get_pid_file)
+ v = File.read(get_pid_file)
+ v = Integer(v) rescue nil
+ return v
+ end
+
+ end
+
end
+
end
class BinError < StandardError; end