]> git.ipfire.org Git - thirdparty/systemd.git/blame - main.c
log: rework logging subsystem to support syslog and kmsg output
[thirdparty/systemd.git] / main.c
CommitLineData
60918275
LP
1/*-*- Mode: C; c-basic-offset: 8 -*-*/
2
a7334b09
LP
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
9 under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
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
16 General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with systemd; If not, see <http://www.gnu.org/licenses/>.
20***/
21
ea430986
LP
22#include <dbus/dbus.h>
23
60918275
LP
24#include <stdio.h>
25#include <errno.h>
26#include <string.h>
16354eff 27#include <unistd.h>
60918275
LP
28
29#include "manager.h"
16354eff 30#include "log.h"
60918275
LP
31
32int main(int argc, char *argv[]) {
33 Manager *m = NULL;
87f0e418 34 Unit *target = NULL;
60918275
LP
35 Job *job = NULL;
36 int r, retval = 1;
27b14a22
LP
37 const char *default_unit;
38
39 if (argc >= 2)
40 default_unit = argv[1];
41 else
42 default_unit = SPECIAL_DEFAULT_TARGET;
60918275 43
8e274523
LP
44 if ((r = manager_new(&m)) < 0) {
45 log_error("Failed to allocate manager object: %s", strerror(-r));
60918275
LP
46 goto finish;
47 }
48
f50e0a01
LP
49 if ((r = manager_coldplug(m)) < 0) {
50 log_error("Failed to retrieve coldplug information: %s", strerror(-r));
51 goto finish;
52 }
53
27b14a22
LP
54 log_debug("Activating default unit: %s", default_unit);
55
56 if ((r = manager_load_unit(m, default_unit, &target)) < 0) {
c22cbe26 57 log_error("Failed to load default target: %s", strerror(-r));
60918275
LP
58 goto finish;
59 }
60
d46de8a1
LP
61 printf("→ By units:\n");
62 manager_dump_units(m, stdout, "\t");
63
8f5847c4
LP
64 if ((r = manager_add_job(m, JOB_START, target, JOB_REPLACE, false, &job)) < 0) {
65 log_error("Failed to start default target: %s", strerror(-r));
66 goto finish;
67 }
11dd41ce 68
44d8db9e 69 printf("→ By jobs:\n");
cea8e32e
LP
70 manager_dump_jobs(m, stdout, "\t");
71
c20cae32
LP
72 if ((r = manager_loop(m)) < 0) {
73 log_error("Failed to run mainloop: %s", strerror(-r));
74 goto finish;
75 }
9152c765 76
60918275
LP
77 retval = 0;
78
79finish:
80 if (m)
81 manager_free(m);
82
b9cd2ec1
LP
83 log_debug("Exit.");
84
ea430986
LP
85 dbus_shutdown();
86
60918275
LP
87 return retval;
88}