units: allow io.systemd.Hostname to be available earlier
Currently the varlink interface for hostname is only available
after sysinit. This means it is not available until systemd-firstboot
is finished. But there is information like the boot-id in there that
is useful to get early.
My use-case is to query the system early via the varlink-http-bridge
and currently I can't get data from io.systemd.Hostname until
systemd-firstboot is completed which is a bit limiting.
So to fix it this commit sets DefaultDependencies=no on both the socket
and service units.
It also changes hostnamed.c to use
bus_open_system_watch_bind_with_description() which means we will
reconnect once dbus is available. This mimics what resolved-bus.c
is doing (and which was originally introduced in d7afd945b).
Thanks to Lennart for pointing this out.
This commit is contained in:
committed by
Zbigniew Jędrzejewski-Szmek
parent
abb03c7c9d
commit
55356a7821
@@ -1964,7 +1964,7 @@ static int connect_bus(Context *c) {
|
|||||||
assert(c->event);
|
assert(c->event);
|
||||||
assert(!c->bus);
|
assert(!c->bus);
|
||||||
|
|
||||||
r = sd_bus_default_system(&c->bus);
|
r = bus_open_system_watch_bind_with_description(&c->bus, "bus-api-hostname");
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Failed to get system bus connection: %m");
|
return log_error_errno(r, "Failed to get system bus connection: %m");
|
||||||
|
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ Documentation=man:systemd-hostnamed.service(8)
|
|||||||
Documentation=man:hostname(5)
|
Documentation=man:hostname(5)
|
||||||
Documentation=man:machine-info(5)
|
Documentation=man:machine-info(5)
|
||||||
Documentation=man:org.freedesktop.hostname1(5)
|
Documentation=man:org.freedesktop.hostname1(5)
|
||||||
|
DefaultDependencies=no
|
||||||
|
Conflicts=shutdown.target
|
||||||
|
Before=shutdown.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=notify
|
Type=notify
|
||||||
|
|||||||
@@ -12,6 +12,9 @@ Description=Hostname Service Socket
|
|||||||
Documentation=man:systemd-hostnamed.service(8)
|
Documentation=man:systemd-hostnamed.service(8)
|
||||||
Documentation=man:hostname(5)
|
Documentation=man:hostname(5)
|
||||||
Documentation=man:machine-info(5)
|
Documentation=man:machine-info(5)
|
||||||
|
DefaultDependencies=no
|
||||||
|
Conflicts=shutdown.target
|
||||||
|
Before=shutdown.target sockets.target
|
||||||
|
|
||||||
[Socket]
|
[Socket]
|
||||||
ListenStream=/run/systemd/io.systemd.Hostname
|
ListenStream=/run/systemd/io.systemd.Hostname
|
||||||
|
|||||||
Reference in New Issue
Block a user