chiark / gitweb /
Prep v229: Remove remaining emacs settings [2/6] src/core
[elogind.git] / src / cgroups-agent / cgroups-agent.c
1 /***
2   This file is part of systemd.
3
4   Copyright 2010 Lennart Poettering
5
6   systemd is free software; you can redistribute it and/or modify it
7   under the terms of the GNU Lesser General Public License as published by
8   the Free Software Foundation; either version 2.1 of the License, or
9   (at your option) any later version.
10
11   systemd is distributed in the hope that it will be useful, but
12   WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14   Lesser General Public License for more details.
15
16   You should have received a copy of the GNU Lesser General Public License
17   along with systemd; If not, see <http://www.gnu.org/licenses/>.
18 ***/
19
20 #include <stdlib.h>
21
22 #include "sd-bus.h"
23 #include "bus-util.h"
24 #include "musl_missing.h"
25 #include "log.h"
26
27 int main(int argc, char *argv[]) {
28         _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
29         int r;
30
31         if (argc != 2) {
32                 log_error("Incorrect number of arguments.");
33                 return EXIT_FAILURE;
34         }
35
36         elogind_set_program_name(argv[0]);
37         log_set_target(LOG_TARGET_AUTO);
38         log_parse_environment();
39         log_open();
40
41 #if 0
42         /* We send this event to the private D-Bus socket and then the
43          * system instance will forward this to the system bus. We do
44          * this to avoid an activation loop when we start dbus when we
45          * are called when the dbus service is shut down. */
46
47         r = bus_connect_system_systemd(&bus);
48 #else
49         /* Unlike in systemd where this has to use a private socket,
50            since elogind doesn't associate control groups with services
51            and doesn't manage the dbus service, we can just use the
52            system bus.  */
53         r = sd_bus_open_system(&bus);
54 #endif // 0
55
56         if (r < 0) {
57 #if 0
58                 /* If we couldn't connect we assume this was triggered
59                  * while systemd got restarted/transitioned from
60                  * initrd to the system, so let's ignore this */
61                 log_debug_errno(r, "Failed to get D-Bus connection: %m");
62 #else
63                 /* If dbus isn't running or responding, there is nothing
64                  * we can do about it. */
65                 log_debug_errno(r, "Failed to open system bus: %m");
66 #endif // 0
67                 return EXIT_FAILURE;
68         }
69
70         r = sd_bus_emit_signal(bus,
71                                "/org/freedesktop/elogind/agent",
72                                "org.freedesktop.elogind.Agent",
73                                "Released",
74                                "s", argv[1]);
75         if (r < 0) {
76 #if 0
77                 log_debug_errno(r, "Failed to send signal message on private connection: %m");
78 #else
79                 log_debug_errno(r, "Failed to send signal message: %m");
80 #endif // 0
81                 return EXIT_FAILURE;
82         }
83
84         return EXIT_SUCCESS;
85 }