写了一个自动杀php进程的ruby脚本
ruby写运维脚本也是可以的~
因为发现后台老是有好多闲置的php进程没有退出,光吃资源,没干活~
于是用ruby写了个脚本到 crontab中,每隔5分钟执行一次
#!/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
虽然很多拿python写运维代码,但是我觉得还是ruby顺手啊~~~