]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/cgroups-agent/cgroups-agent.c
sd-bus: introduce new sd_bus_flush_close_unref() call
[thirdparty/systemd.git] / src / cgroups-agent / cgroups-agent.c
CommitLineData
d6c9574f 1/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
8e274523
LP
2
3/***
4 This file is part of systemd.
5
6 Copyright 2010 Lennart Poettering
7
8 systemd is free software; you can redistribute it and/or modify it
5430f7f2
LP
9 under the terms of the GNU Lesser General Public License as published by
10 the Free Software Foundation; either version 2.1 of the License, or
8e274523
LP
11 (at your option) any later version.
12
13 systemd is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5430f7f2 16 Lesser General Public License for more details.
8e274523 17
5430f7f2 18 You should have received a copy of the GNU Lesser General Public License
8e274523
LP
19 along with systemd; If not, see <http://www.gnu.org/licenses/>.
20***/
21
22f4096c
LP
22#include <stdlib.h>
23
d05f1cae 24#include "sd-bus.h"
8e274523 25#include "log.h"
d05f1cae 26#include "bus-util.h"
8e274523
LP
27
28int main(int argc, char *argv[]) {
03976f7b 29 _cleanup_bus_flush_close_unref_ sd_bus *bus = NULL;
d05f1cae 30 int r;
8e274523
LP
31
32 if (argc != 2) {
33 log_error("Incorrect number of arguments.");
d05f1cae 34 return EXIT_FAILURE;
8e274523
LP
35 }
36
4cfa2c99 37 log_set_target(LOG_TARGET_AUTO);
3c661fad 38 log_parse_environment();
2396fb04 39 log_open();
3c661fad 40
53c6a358
LP
41 /* We send this event to the private D-Bus socket and then the
42 * system instance will forward this to the system bus. We do
35b8ca3a 43 * this to avoid an activation loop when we start dbus when we
53c6a358
LP
44 * are called when the dbus service is shut down. */
45
0f8bd8de 46 r = bus_open_system_systemd(&bus);
d05f1cae 47 if (r < 0) {
844de435
LP
48 /* If we couldn't connect we assume this was triggered
49 * while systemd got restarted/transitioned from
50 * initrd to the system, so let's ignore this */
da927ba9 51 log_debug_errno(r, "Failed to get D-Bus connection: %m");
d05f1cae 52 return EXIT_FAILURE;
8e274523
LP
53 }
54
d05f1cae
TG
55 r = sd_bus_emit_signal(bus,
56 "/org/freedesktop/systemd1/agent",
57 "org.freedesktop.systemd1.Agent",
58 "Released",
59 "s", argv[1]);
60 if (r < 0) {
da927ba9 61 log_debug_errno(r, "Failed to send signal message on private connection: %m");
d05f1cae 62 return EXIT_FAILURE;
51bc5d4b 63 }
8e274523 64
d05f1cae 65 return EXIT_SUCCESS;
8e274523 66}