Implement Foreman::Process#kill,detach,alive?,dead?
This commit is contained in:
1 parent
047f106d48
commit
241b91a0d5
2 files changed
+19
-2
No files matched your search
@@ -74,7 +74,7 @@ private ######################################################################
|
|||||||
def kill_all(signal="SIGTERM")
|
def kill_all(signal="SIGTERM")
|
||||||
running_processes.each do |pid, process|
|
running_processes.each do |pid, process|
|
||||||
info "sending #{signal} to pid #{pid}"
|
info "sending #{signal} to pid #{pid}"
|
||||||
Process.kill(signal, pid) rescue Errno::ESRCH
|
process.kill signal
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
+18
-1
@@ -25,6 +25,24 @@ class Foreman::Process
|
|||||||
"%s.%s" % [ entry.name, num ]
|
"%s.%s" % [ entry.name, num ]
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def kill(signal)
|
||||||
|
pid && Process.kill(signal, pid)
|
||||||
|
rescue Errno::ESRCH
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
|
def detach
|
||||||
|
pid && Process.detach(pid)
|
||||||
|
end
|
||||||
|
|
||||||
|
def alive?
|
||||||
|
kill(0)
|
||||||
|
end
|
||||||
|
|
||||||
|
def dead?
|
||||||
|
!alive?
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def fork_with_io(command)
|
def fork_with_io(command)
|
||||||
@@ -65,5 +83,4 @@ private
|
|||||||
ensure
|
ensure
|
||||||
ENV.replace original
|
ENV.replace original
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
Reference in new issue
Block a user