diff --git a/metrics/init/metrics_daemon.conf b/metrics/init/metrics_daemon.conf
index 885ab0f..52fe90d 100644
--- a/metrics/init/metrics_daemon.conf
+++ b/metrics/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/metrics/init/metrics_library.conf b/metrics/init/metrics_library.conf
new file mode 100644
index 0000000..6aa49ed
--- /dev/null
+++ b/metrics/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/metrics_library.cc b/metrics/metrics_library.cc
index b15fd49..4fbc1d8 100644
--- a/metrics/metrics_library.cc
+++ b/metrics/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/metrics_library_test.cc b/metrics/metrics_library_test.cc
index 377495f..82418ed 100644
--- a/metrics/metrics_library_test.cc
+++ b/metrics/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())
