sd_bus_open_user, sd_bus_open_system, sd_bus_open_system_remote, sd_bus_open_system_container, sd_bus_default_user, sd_bus_default_system — Open a connection to the system or user bus
#include <systemd/sd-bus.h>
int sd_bus_open_user( | sd_bus **bus) ; |
int sd_bus_open_system( | sd_bus **bus) ; |
int sd_bus_open_system_remote( | const char *host, |
sd_bus **bus) ; |
int sd_bus_open_system_container( | const char *machine, |
sd_bus **bus) ; |
int sd_bus_default_user( | sd_bus **bus) ; |
int sd_bus_default_system( | sd_bus **bus) ; |
sd_bus_open_user()
creates a new bus
object and opens a connection to the user bus.
sd_bus_open_system()
does the same, but
connects to the system bus.
If the $DBUS_SESSION_BUS_ADDRESS
environment
variable is set
(cf. environ(7)),
it will be used as the address of the user bus. This variable can
contain multiple addresses separated by ";
". If
this variable is not set, a suitable default for the default user
D-Bus instance will be used.
If the $DBUS_SYSTEM_BUS_ADDRESS
environment
variable is set, it will be used as the address of the system
bus. This variable uses the same syntax as
$DBUS_SESSION_BUS_ADDRESS
/. If this variable is
not set, a suitable default for the default system D-Bus instance
will be used.
sd_bus_open_system_remote()
connects to
the system bus on the specified host
using
SSH. host
consists of an optional user name
followed by the "@
" symbol, and the hostname.
sd_bus_open_system_container()
connects
to the system bus in the specified machine
,
where machine
is the name of a container.
See
machinectl(1)
for more information about "machines".
sd_bus_default_user()
returns a bus
object connected to the user bus. Each thread has its own object, but it
may be passed around. It is created on the first invocation of
sd_bus_default_user()
, and subsequent
invocations returns a reference to the same object.
sd_bus_default_system()
is similar to
sd_bus_default_user()
, but connects to the
system bus.
On success, these calls return 0 or a positive integer. On failure, these calls return a negative errno-style error code.
Functions sd_bus_open_user()
,
sd_bus_open_system()
,
sd_bus_open_system_remote()
, and
sd_bus_open_system_machine()
return a new
object and the caller owns the sole reference. When not needed
anymore, this reference should be destroyed with
sd_bus_unref(3).
The functions sd_bus_default_user()
and
sd_bus_default_system()
do not create a new
reference.
Returned errors may indicate the following problems:
In addition, any further connection-related errors may be by returned. See sd_bus_send(3).
sd_bus_open_user()
and other functions
described here are available as a shared library, which can be
compiled and linked to with the
libsystemd
pkg-config(1)
file.