lib/foreman/engine.rb in foreman-0.25.0 vs lib/foreman/engine.rb in foreman-0.26.0
- old
+ new
@@ -26,10 +26,11 @@
@environment = read_environment_files(options[:env])
end
def start
proctitle "ruby: foreman master"
+ termtitle "#{File.basename(@directory)} - foreman (#{processes.size} processes)"
processes.each do |process|
process.color = next_color
fork process
end
@@ -39,10 +40,11 @@
watch_for_termination
end
def execute(name)
+ error "no such process: #{name}" unless procfile[name]
fork procfile[name]
trap("TERM") { puts "SIGTERM received"; terminate_gracefully }
trap("INT") { puts "SIGINT received"; terminate_gracefully }
@@ -94,11 +96,11 @@
until stdin.eof?
info stdin.gets, process
end
end
end
- rescue PTY::ChildExited, Interrupt, Errno::EIO
+ rescue PTY::ChildExited, Interrupt, Errno::EIO, Errno::ENOENT
begin
info "process exiting", process
rescue Interrupt
end
end
@@ -154,9 +156,13 @@
name.ljust(longest_process_name + 3) # add 3 for process number padding
end
def proctitle(title)
$0 = title
+ end
+
+ def termtitle(title)
+ printf("\033]0;#{title}\007")
end
def running_processes
@running_processes ||= {}
end