diff --git a/brillo/process_reaper.h b/brillo/process_reaper.h
new file mode 100644
index 0000000..4d28f4e
--- /dev/null
+++ b/brillo/process_reaper.h
@@ -0,0 +1,67 @@
+// Copyright 2015 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.
+
+#ifndef LIBCHROMEOS_BRILLO_PROCESS_REAPER_H_
+#define LIBCHROMEOS_BRILLO_PROCESS_REAPER_H_
+
+#include <sys/wait.h>
+
+#include <map>
+
+#include <base/callback.h>
+#include <base/location.h>
+#include <base/macros.h>
+#include <brillo/asynchronous_signal_handler.h>
+#include <brillo/daemons/daemon.h>
+
+namespace brillo {
+
+class BRILLO_EXPORT ProcessReaper final {
+ public:
+  // The callback called when a child exits.
+  using ChildCallback = base::Callback<void(const siginfo_t&)>;
+
+  ProcessReaper() = default;
+  ~ProcessReaper();
+
+  // Register the ProcessReaper using either the provided
+  // brillo::AsynchronousSignalHandlerInterface. You can call Unregister() to
+  // remove this ProcessReapper or it will be called during shutdown.
+  // You can only register this ProcessReaper with one signal handler at a time.
+  void Register(AsynchronousSignalHandlerInterface* async_signal_handler);
+
+  // Unregisters the ProcessReaper from the
+  // brillo::AsynchronousSignalHandlerInterface passed in Register(). It
+  // doesn't do anything if not registered.
+  void Unregister();
+
+  // Watch for the child process |pid| to finish and call |callback| when the
+  // selected process exits or the process terminates for other reason. The
+  // |callback| receives the exit status and exit code of the terminated process
+  // as a siginfo_t. See wait(2) for details about siginfo_t.
+  bool WatchForChild(const tracked_objects::Location& from_here,
+                     pid_t pid,
+                     const ChildCallback& callback);
+
+ private:
+  // SIGCHLD handler for the AsynchronousSignalHandler. Always returns false
+  // (meaning that the signal handler should not be unregistered).
+  bool HandleSIGCHLD(const signalfd_siginfo& sigfd_info);
+
+  struct WatchedProcess {
+    tracked_objects::Location location;
+    ChildCallback callback;
+  };
+  std::map<pid_t, WatchedProcess> watched_processes_;
+
+  // The |async_signal_handler_| is owned by the caller and is |nullptr| when
+  // not registered.
+  AsynchronousSignalHandlerInterface* async_signal_handler_{nullptr};
+
+  DISALLOW_COPY_AND_ASSIGN(ProcessReaper);
+};
+
+}  // namespace brillo
+
+#endif  // LIBCHROMEOS_BRILLO_PROCESS_REAPER_H_
