diff --git a/main.cc b/main.cc
index f61ff34..b2f14c4 100644
--- a/main.cc
+++ b/main.cc
@@ -26,6 +26,19 @@
 
 namespace chromeos_update_engine {
 
+namespace {
+
+struct PeriodicallyUpdateArgs {
+  UpdateAttempter* update_attempter;
+  gboolean should_repeat;
+};
+
+gboolean PeriodicallyUpdate(void* arg) {
+  PeriodicallyUpdateArgs* args = reinterpret_cast<PeriodicallyUpdateArgs*>(arg);
+  args->update_attempter->Update(false);
+  return args->should_repeat;
+}
+
 void SetupDbusService(UpdateEngineService* service) {
   DBusGConnection *bus;
   DBusGProxy *proxy;
@@ -60,6 +73,8 @@
                                       G_OBJECT(service));
 }
 
+}  // namespace {}
+
 }  // namespace chromeos_update_engine
 
 #include "update_engine/subprocess.h"
@@ -71,7 +86,7 @@
   chromeos_update_engine::Subprocess::Init();
   google::ParseCommandLineFlags(&argc, &argv, true);
   CommandLine::Init(argc, argv);
-  logging::InitLogging("logfile.txt",
+  logging::InitLogging("/var/log/update_engine.log",
                        (FLAGS_logtostderr ?
                         logging::LOG_ONLY_TO_SYSTEM_DEBUG_LOG :
                         logging::LOG_ONLY_TO_FILE),
@@ -94,6 +109,20 @@
   update_attempter.set_dbus_service(service);
   chromeos_update_engine::SetupDbusService(service);
 
+  // Kick off periodic updating. First, update after 2 minutes. Also, update
+  // every 30 minutes.
+  chromeos_update_engine::PeriodicallyUpdateArgs two_min_args =
+      {&update_attempter, FALSE};
+  g_timeout_add(2 * 60 * 1000,
+                &chromeos_update_engine::PeriodicallyUpdate,
+                &two_min_args);
+
+  chromeos_update_engine::PeriodicallyUpdateArgs thirty_min_args =
+      {&update_attempter, TRUE};
+  g_timeout_add(30 * 60 * 1000,
+                &chromeos_update_engine::PeriodicallyUpdate,
+                &thirty_min_args);
+
   // Run the main loop until exit time:
   g_main_loop_run(loop);
 
