diff --git a/init/metrics_daemon.conf b/init/metrics_daemon.conf
index 885ab0f..52fe90d 100644
--- a/init/metrics_daemon.conf
+++ b/init/metrics_daemon.conf
@@ -12,11 +12,8 @@
 respawn
 
 pre-start script
-  # Make directories, but don't die on error.  Let someone else complain.
-  LIBDIR=/var/lib/metrics
-  RUNDIR=/var/run/metrics
-  mkdir -p $LIBDIR || logger "metrics_daemon: cannot create $LIBDIR"
-  mkdir -p $RUNDIR || logger "metrics_daemon: cannot create $RUNDIR"
+  # Make directory, but don't die on error.  Let someone else complain.
+  mkdir -p /var/lib/metrics
 end script
 
 expect fork
diff --git a/init/metrics_library.conf b/init/metrics_library.conf
new file mode 100644
index 0000000..6aa49ed
--- /dev/null
+++ b/init/metrics_library.conf
@@ -0,0 +1,19 @@
+# Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+description     "Metrics Library upstart file"
+author          "chromium-os-dev@chromium.org"
+
+# The metrics library is used by several programs (daemons and others)
+# to send UMA stats.
+start on starting boot-services
+
+pre-start script
+  # Create the file used as communication endpoint for metrics.
+  RUNDIR=/var/run/metrics
+  EVENTS_FILE=${RUNDIR}/uma-events
+  mkdir -p ${RUNDIR}
+  touch ${EVENTS_FILE}
+  chmod 666 ${EVENTS_FILE}
+end script
diff --git a/metrics_library.cc b/metrics_library.cc
index b15fd49..4fbc1d8 100644
--- a/metrics_library.cc
+++ b/metrics_library.cc
@@ -19,8 +19,6 @@
 
 #include "policy/device_policy.h"
 
-#define READ_WRITE_ALL_FILE_FLAGS \
-  (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH)
 #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))
 
 static const char kAutotestPath[] = "/var/log/metrics/autotest-events";
@@ -178,21 +176,15 @@
     return false;
   }
   // Use libc here instead of chromium base classes because we need a UNIX fd
-  // for flock.
+  // for flock. |uma_events_file_| must exist already.
   int chrome_fd = HANDLE_EINTR(open(uma_events_file_.c_str(),
-                                    O_WRONLY | O_APPEND | O_CREAT,
-                                    READ_WRITE_ALL_FILE_FLAGS));
+                                    O_WRONLY | O_APPEND));
   // If we failed to open it, return.
   if (chrome_fd < 0) {
     PLOG(ERROR) << uma_events_file_ << ": open";
     return false;
   }
 
-  // Need to chmod because open flags are anded with umask. Ignore the
-  // exit code -- a chronos process may fail chmoding because the file
-  // has been created by a root process but that should be OK.
-  fchmod(chrome_fd, READ_WRITE_ALL_FILE_FLAGS);
-
   // Grab an exclusive lock to protect Chrome from truncating
   // underneath us.
   if (HANDLE_EINTR(flock(chrome_fd, LOCK_EX)) < 0) {
diff --git a/metrics_library_test.cc b/metrics_library_test.cc
index 377495f..82418ed 100644
--- a/metrics_library_test.cc
+++ b/metrics_library_test.cc
@@ -33,6 +33,7 @@
     lib_.Init();
     EXPECT_FALSE(lib_.uma_events_file_.empty());
     lib_.uma_events_file_ = kTestUMAEventsFile.value();
+    EXPECT_EQ(0, WriteFile(kTestUMAEventsFile, "", 0));
     device_policy_ = new policy::MockDevicePolicy();
     EXPECT_CALL(*device_policy_, LoadPolicy())
         .Times(AnyNumber())
@@ -256,6 +257,7 @@
     CMetricsLibraryInit(lib_);
     EXPECT_FALSE(ml.uma_events_file_.empty());
     ml.uma_events_file_ = kTestUMAEventsFile.value();
+    EXPECT_EQ(0, WriteFile(kTestUMAEventsFile, "", 0));
     device_policy_ = new policy::MockDevicePolicy();
     EXPECT_CALL(*device_policy_, LoadPolicy())
         .Times(AnyNumber())
