mirror of
https://github.com/troglobit/finit.git
synced 2026-11-09 16:21:24 +00:00
libink: a brokerless D-Bus implementation for Finit
Finit had no way to answer the question every service manager gets asked: what is running, and change it. D-Bus is how the rest of userspace asks, but linking libdbus, sd-bus or GIO into PID 1 buys a dependency, an allocator and a main loop we do not control. So libink: the wire format, an object tree, and a bus of Finit's own at /run/finit/bus, gated like INIT_SOCKET. It speaks the standard org.freedesktop.DBus, .Peer, .Introspectable interfaces, and Finit's own Manager1, Service1 and Cond1 on top. Methods that change something are marked privileged and answered only for a caller the kernel vouched for, via SO_PEERCRED. Server and client both, since initctl is the first thing that needs to talk to it, and its Start/Stop/Restart/Reload now go over the bus rather than the legacy socket. Signed-off-by: Joachim Wiberg <troglobit@gmail.com>
This commit is contained in:
1 parent
ae9a24f44f
commit
0a269f3298
39 files changed
+5530
-49
No files matched your search
+12
-1
@@ -1,5 +1,16 @@
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
SUBDIRS = man plugins src system tmpfiles.d
|
||||
|
||||
# libink must precede src in SUBDIRS because finit links against
|
||||
# libink at build time. Automake recurses subdirs strictly in
|
||||
# declaration order, so the typical "explicit dependency" pattern
|
||||
# (foo: bar) doesn't help here — ordering is the only thing that
|
||||
# does. libsystemd is consumed by test/serv only, so its position
|
||||
# after src is fine.
|
||||
SUBDIRS = man plugins
|
||||
if DBUS
|
||||
SUBDIRS += libink
|
||||
endif
|
||||
SUBDIRS += src system tmpfiles.d
|
||||
dist_doc_DATA = README.md LICENSE contrib/finit.conf
|
||||
|
||||
if CONTRIB
|
||||
|
||||
Reference in new issue
Block a user