]> git.proxmox.com Git - systemd.git/blame - src/cgroups-agent/cgroups-agent.c
Imported Upstream version 229
[systemd.git] / src / cgroups-agent / cgroups-agent.c
CommitLineData
663996b3
MS
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
663996b3
MS
20#include <stdlib.h>
21
60f067b4 22#include "sd-bus.h"
db2df898 23
60f067b4 24#include "bus-util.h"
db2df898 25#include "log.h"
663996b3
MS
26
27int main(int argc, char *argv[]) {
4c89c718 28 _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL;
60f067b4 29 int r;
663996b3
MS
30
31 if (argc != 2) {
32 log_error("Incorrect number of arguments.");
60f067b4 33 return EXIT_FAILURE;
663996b3
MS
34 }
35
36 log_set_target(LOG_TARGET_AUTO);
37 log_parse_environment();
38 log_open();
39
40 /* We send this event to the private D-Bus socket and then the
41 * system instance will forward this to the system bus. We do
42 * this to avoid an activation loop when we start dbus when we
43 * are called when the dbus service is shut down. */
44
6300502b 45 r = bus_connect_system_systemd(&bus);
60f067b4
JS
46 if (r < 0) {
47 /* If we couldn't connect we assume this was triggered
48 * while systemd got restarted/transitioned from
49 * initrd to the system, so let's ignore this */
f47781d8 50 log_debug_errno(r, "Failed to get D-Bus connection: %m");
60f067b4 51 return EXIT_FAILURE;
663996b3
MS
52 }
53
60f067b4
JS
54 r = sd_bus_emit_signal(bus,
55 "/org/freedesktop/systemd1/agent",
56 "org.freedesktop.systemd1.Agent",
57 "Released",
58 "s", argv[1]);
59 if (r < 0) {
f47781d8 60 log_debug_errno(r, "Failed to send signal message on private connection: %m");
60f067b4 61 return EXIT_FAILURE;
663996b3
MS
62 }
63
60f067b4 64 return EXIT_SUCCESS;
663996b3 65}