machined.c revision c34255bdb217c2a1d3ac6348252437ab8be9ca46
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster This file is part of systemd.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster Copyright 2013 Lennart Poettering
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster systemd is free software; you can redistribute it and/or modify it
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster under the terms of the GNU Lesser General Public License as published by
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster the Free Software Foundation; either version 2.1 of the License, or
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster (at your option) any later version.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster systemd is distributed in the hope that it will be useful, but
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster WITHOUT ANY WARRANTY; without even the implied warranty of
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster Lesser General Public License for more details.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster You should have received a copy of the GNU Lesser General Public License
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster along with systemd; If not, see <http://www.gnu.org/licenses/>.
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster m->machine_units = hashmap_new(&string_hash_ops);
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster if (!m->machines || !m->machine_units || !m->machine_leaders) {
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster if (r < 0) {
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster /* Read in machine data stored on disk */
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster log_error("Failed to open /run/systemd/machines: %m");
4fe4e4f798a84a46e567f64ceadd3648eb0582d4Allan Foster /* Ignore symlinks that map the unit name to the machine */
assert(m);
r = sd_bus_add_object_vtable(m->bus, NULL, "/org/freedesktop/machine1", "org.freedesktop.machine1.Manager", manager_vtable, m);
r = sd_bus_add_fallback_vtable(m->bus, NULL, "/org/freedesktop/machine1/machine", "org.freedesktop.machine1.Machine", machine_vtable, machine_object_find, m);
r = sd_bus_add_node_enumerator(m->bus, NULL, "/org/freedesktop/machine1/machine", machine_node_enumerator, m);
NULL,
"sender='org.freedesktop.systemd1',"
"interface='org.freedesktop.systemd1.Manager',"
"path='/org/freedesktop/systemd1'",
NULL,
"sender='org.freedesktop.systemd1',"
"interface='org.freedesktop.systemd1.Manager',"
"path='/org/freedesktop/systemd1'",
NULL,
"sender='org.freedesktop.systemd1',"
NULL,
"sender='org.freedesktop.systemd1',"
"interface='org.freedesktop.systemd1.Manager',"
"path='/org/freedesktop/systemd1'",
r = sd_bus_call_method(
m->bus,
"org.freedesktop.systemd1",
"/org/freedesktop/systemd1",
"org.freedesktop.systemd1.Manager",
&error,
assert(m);
Iterator i;
assert(m);
r = manager_connect_bus(m);
manager_gc(m, false);
manager_gc(m, true);
assert(m);
return bus_event_loop_with_idle(
m->event,
m->bus,
check_idle, m);
log_open();
r = -EINVAL;
goto finish;
m = manager_new();
r = log_oom();
goto finish;
r = manager_startup(m);
goto finish;
sd_notify(false,
r = manager_run(m);
manager_free(m);