]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/cgroups-agent/cgroups-agent.c
homed: make it easier to run multiple instances of homed
[thirdparty/systemd.git] / src / cgroups-agent / cgroups-agent.c
CommitLineData
53e1b683 1/* SPDX-License-Identifier: LGPL-2.1+ */
8e274523 2
22f4096c
LP
3#include <stdlib.h>
4
d8fdc620 5#include "fd-util.h"
07630cea 6#include "log.h"
d8fdc620 7#include "socket-util.h"
8e274523
LP
8
9int main(int argc, char *argv[]) {
d8fdc620
LP
10
11 static const union sockaddr_union sa = {
12 .un.sun_family = AF_UNIX,
13 .un.sun_path = "/run/systemd/cgroups-agent",
14 };
15
16 _cleanup_close_ int fd = -1;
17 ssize_t n;
18 size_t l;
8e274523
LP
19
20 if (argc != 2) {
21 log_error("Incorrect number of arguments.");
d05f1cae 22 return EXIT_FAILURE;
8e274523
LP
23 }
24
6bf3c61c 25 log_setup_service();
3c661fad 26
d8fdc620
LP
27 fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0);
28 if (fd < 0) {
29 log_debug_errno(errno, "Failed to allocate socket: %m");
30 return EXIT_FAILURE;
31 }
32
33 l = strlen(argv[1]);
34
fc2fffe7 35 n = sendto(fd, argv[1], l, 0, &sa.sa, SOCKADDR_UN_LEN(sa.un));
d8fdc620
LP
36 if (n < 0) {
37 log_debug_errno(errno, "Failed to send cgroups agent message: %m");
d05f1cae 38 return EXIT_FAILURE;
8e274523
LP
39 }
40
d8fdc620
LP
41 if ((size_t) n != l) {
42 log_debug("Datagram size mismatch");
d05f1cae 43 return EXIT_FAILURE;
51bc5d4b 44 }
8e274523 45
d05f1cae 46 return EXIT_SUCCESS;
8e274523 47}