Class: ShellProcessController

Inherits:
BasicProcessController show all
Defined in:
lib/shell_process_controller.rb

Instance Method Summary collapse

Methods inherited from BasicProcessController

#delay, #num_processes, #process_ended, #process_started, #progress, #running?, #time_running

Constructor Details

#initialize(script, logdir) ⇒ ShellProcessController

Returns a new instance of ShellProcessController.



3
4
5
6
7
8
9
# File 'lib/shell_process_controller.rb', line 3

def initialize(script, logdir)
  super()
  @script = script
  @logdir = logdir
  @log = File.open("#{logdir}/ppool.log", 'w')

end

Instance Method Details

#info(m) ⇒ Object



25
26
27
28
# File 'lib/shell_process_controller.rb', line 25

def info(m)
  @log.write("#{m}\n")
  @log.flush
end

#run_processObject



11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/shell_process_controller.rb', line 11

def run_process

  timestamp = Time.now.strftime('%Y%m%d%H%M%S')
  pid = Process.pid
 
  stdout = "#{@logdir}/process_#{pid}_#{timestamp}.stdout"
  stderr = "#{@logdir}/process_#{pid}_#{timestamp}.stderr"
  stdin = "/dev/null"

  info "running #{@script} output to #{stdout}"
  exec("#{@script} > #{stdout} 2> #{stderr} < #{stdin}")

end