Last active
February 25, 2017 17:55
-
-
Save molizz/69997dad67eee756b69ba184a49b8f34 to your computer and use it in GitHub Desktop.
# 自动关闭状态为闲置(s)的php进程
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env ruby | |
# 自动关闭状态为闲置(s)的php进程 | |
require 'time' | |
def php_processes | |
ps = `ps aux|grep -e '/opt/cpanel/ea-php'` | |
process = Struct.new(:pid, :created_at, :status) do | |
def kill() | |
`kill -6 #{pid}` | |
end | |
def dormanted? | |
%w(X S Z).include? status | |
end | |
def timeout? | |
(Time.now-created_at).to_i > (5*60) # 大于5分钟则关闭进程 | |
end | |
def kill_dormanted! | |
kill() if dormanted? && timeout? | |
end | |
end | |
pss = [] | |
ps.split("\n").each do |p| | |
p = p.split | |
pid = p[1] | |
created_at = Time.parse "#{p[8]}" rescue Time.now | |
status = p[7] | |
pss << process.new(pid, created_at, status) | |
end | |
pss | |
end | |
php_processes.each do |p| | |
p.kill_dormanted! | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment