def run_command_unix(command, timeout)
stderr_string, stdout_string, status = "", "", nil
exec_processing_block = lambda do |pid, stdin, stdout, stderr|
stdout_string, stderr_string = stdout.string.chomp, stderr.string.chomp
end
if timeout
begin
Timeout.timeout(timeout) do
status = popen4(command, {}, &exec_processing_block)
end
rescue Timeout::Error => e
Chef::Log.error("#{command} exceeded timeout #{timeout}")
raise(e)
end
else
status = popen4(command, {}, &exec_processing_block)
end
return status, stdout_string, stderr_string
end