54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'lib/fluent/plugin/in_multiprocess.rb', line 54
def start
@pm = ServerEngine::ProcessManager.new(
:auto_tick => true,
:auto_tick_interval => 1,
:graceful_kill_interval => @graceful_kill_interval,
:graceful_kill_interval_increment => @graceful_kill_interval_increment,
:graceful_kill_timeout => @graceful_kill_timeout,
:graceful_kill_signal => 'TERM',
:immediate_kill_timeout => 0,
)
plugin_rb = $LOADED_FEATURES.find {|x| x =~ /fluent\/plugin\.rb\z/ }
fluentd_rb = File.join(File.dirname(plugin_rb), 'command', 'fluentd.rb')
@processes.reverse_each do |pe|
cmd = "#{Shellwords.shellescape(RbConfig.ruby)} #{Shellwords.shellescape(fluentd_rb)} #{pe.cmdline}"
sleep pe.sleep_before_start if pe.sleep_before_start > 0
$log.info "launching child fluentd #{pe.cmdline}"
keep_file_descriptors = pe.keep_file_descriptors.nil? ? @keep_file_descriptors : pe.keep_file_descriptors
options = {:close_others => !keep_file_descriptors}
pe.process_monitor = @pm.spawn(cmd, options)
end
end
|