blob: 5141b4822178a28f36ccd3678a26fe1d80ec55ad [file] [log] [blame]
// 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 GERM_GERM_INIT_H_
#define GERM_GERM_INIT_H_
#include <base/macros.h>
#include <chromeos/daemons/daemon.h>
#include "germ/init_process_reaper.h"
#include "germ/launcher.h"
#include "germ/proto_bindings/soma_container_spec.pb.h"
namespace germ {
// Init process for Germ containers. Responsible for launching processes
// specified in the given ContainerSpec and for reaping children.
class GermInit : public chromeos::Daemon {
public:
explicit GermInit(const soma::ContainerSpec& spec);
~GermInit();
private:
int OnInit() override;
void StartProcesses();
Launcher launcher_;
InitProcessReaper init_process_reaper_;
const soma::ContainerSpec& spec_;
DISALLOW_COPY_AND_ASSIGN(GermInit);
};
} // namespace germ
#endif // GERM_GERM_INIT_H_