module Tcpkicker::Cli
Public Class Methods
start(args = ARGV)
click to toggle source
# File lib/tcpkicker/cli.rb, line 9 def start(args = ARGV) opt = OptionParser.new options = { :config_path => '/etc/tcpkicker/config.yaml', } opt.on('-c', '--config PATH', 'configuration file path') { |v| options[:config_path] = v } opt.parse(ARGV) config = YAML.load_file(options[:config_path]) config['servers'].each { |server| puts '[' + server['name'] + '] Listen to port ' + server['port'].to_s Thread.start { tcp_server = TCPServer.open(server['port']) socket = tcp_server.accept socket.close tcp_server.close puts '[' + server['name'] + '] Execute command `' + server['execute'] + '`' system server['execute'] } } tcp_server = TCPServer.open(config['port']) socket = tcp_server.accept socket.close tcp_server.close end