在给定端口上启动和停止进程的更好方法

时间:2015-07-16 08:08:16

标签: ruby linux refactoring

我的代码有效,但是有更好的解决方案吗?

我有一个重启外部工具的操作。有时它会重新启动或启动。我将端口设置为12928.我的checkobject有一个从系统中获取PID的方法。

def pids
  %x{netstat -tanp | grep 12928}
end

使用方法pid(下面)我得到了pid。

def pid
  /(?<pid>\d+)\//.match(pits.to_s)[:pid].to_i
end

要停止此服务,请使用:

Process.kill("SIGTERM",pid) 
Process.detach(pid)

1 个答案:

答案 0 :(得分:0)

我发现了一颗名为eyehttps://github.com/kostya/eye)的宝石,灵感来自于蓝宝石和上帝。

看起来很不错,我会尝试一下。

如果有人对此感兴趣,以下是来自存储库的示例:

process :sample1 do
  pid_file '1.pid' 
  start_command 'ruby ./sample.rb'
  daemonize true
  stdall 'sample1.log'
end

为了开始你的工作:

eye start sample1

要停止此作业,请键入:

eye stop sample1