diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..66c3543 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +example/log/* diff --git a/example/die_alot b/example/die_alot index 2fdb4d3..f1229f5 100755 --- a/example/die_alot +++ b/example/die_alot @@ -1,4 +1,5 @@ #!/usr/bin/env ruby +puts "sleeping for 2s then dying" sleep 2 exit 0 diff --git a/example/error b/example/error index 30a7c2d..d3bae14 100755 --- a/example/error +++ b/example/error @@ -1,4 +1,5 @@ #!/usr/bin/env ruby +puts "will error in 10s" sleep 10 raise "Dying" diff --git a/example/never_die b/example/never_die index 25d3848..3f6b199 100755 --- a/example/never_die +++ b/example/never_die @@ -1,5 +1,7 @@ #!/usr/bin/env ruby while true + puts "tick" + $stdout.flush sleep 5 end diff --git a/lib/foreman/engine.rb b/lib/foreman/engine.rb index 6abe6f6..ca26f5f 100644 --- a/lib/foreman/engine.rb +++ b/lib/foreman/engine.rb @@ -47,7 +47,8 @@ private ###################################################################### proctitle "ruby: foreman #{process.name}" Dir.chdir directory do - system process.command + FileUtils.mkdir_p "log" + system "#{process.command} >>log/#{process.name}.log 2>&1" exit $?.exitstatus || 255 end end diff --git a/lib/foreman/export/upstart.rb b/lib/foreman/export/upstart.rb index 89d02be..24a79ca 100644 --- a/lib/foreman/export/upstart.rb +++ b/lib/foreman/export/upstart.rb @@ -47,7 +47,7 @@ stop on stopping #{name} respawn chdir #{engine.directory} -exec #{process.command} 2>&1 > /var/log/#{name}/#{process.name}.log +exec #{process.command} >>/var/log/#{name}/#{process.name}.log 2>&1 UPSTART_CHILD end end