]> git.ipfire.org Git - people/ms/systemd.git/blame - main.c
add basic (and not very useful) D-Bus support
[people/ms/systemd.git] / main.c
CommitLineData
60918275
LP
1/*-*- Mode: C; c-basic-offset: 8 -*-*/
2
ea430986
LP
3#include <dbus/dbus.h>
4
60918275
LP
5#include <stdio.h>
6#include <errno.h>
7#include <string.h>
16354eff 8#include <unistd.h>
60918275
LP
9
10#include "manager.h"
16354eff 11#include "log.h"
60918275
LP
12
13int main(int argc, char *argv[]) {
14 Manager *m = NULL;
87f0e418 15 Unit *target = NULL;
60918275
LP
16 Job *job = NULL;
17 int r, retval = 1;
18
0301abf4 19 assert_se(set_unit_path("test1") >= 0);
16354eff 20
ea430986 21 if (!(m = manager_new())) {
16354eff 22 log_error("Failed to allocate manager object: %s", strerror(ENOMEM));
60918275
LP
23 goto finish;
24 }
25
f50e0a01
LP
26 if ((r = manager_coldplug(m)) < 0) {
27 log_error("Failed to retrieve coldplug information: %s", strerror(-r));
28 goto finish;
29 }
30
31 if ((r = manager_load_unit(m, SPECIAL_DEFAULT_TARGET, &target)) < 0) {
c22cbe26 32 log_error("Failed to load default target: %s", strerror(-r));
60918275
LP
33 goto finish;
34 }
35
d46de8a1
LP
36 printf("→ By units:\n");
37 manager_dump_units(m, stdout, "\t");
38
8f5847c4
LP
39 if ((r = manager_add_job(m, JOB_START, target, JOB_REPLACE, false, &job)) < 0) {
40 log_error("Failed to start default target: %s", strerror(-r));
41 goto finish;
42 }
11dd41ce 43
44d8db9e 44 printf("→ By jobs:\n");
cea8e32e
LP
45 manager_dump_jobs(m, stdout, "\t");
46
c20cae32
LP
47 if ((r = manager_loop(m)) < 0) {
48 log_error("Failed to run mainloop: %s", strerror(-r));
49 goto finish;
50 }
9152c765 51
60918275
LP
52 retval = 0;
53
54finish:
55 if (m)
56 manager_free(m);
57
b9cd2ec1
LP
58 log_debug("Exit.");
59
ea430986
LP
60 dbus_shutdown();
61
60918275
LP
62 return retval;
63}