sd_bus_open_user systemd A monkey with a typewriter Zbigniew Jędrzejewski-Szmek zbyszek@in.waw.pl sd_bus_open_user 3 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 Description 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. environ7), 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_remote() connects to the system bus in the specified machine, where machine is the name of a container. See machinectl1 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. Return Value On success, these calls return 0 or a positive integer. On failure, these calls return a negative errno-style error code. Reference ownership 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_unref3. The functions sd_bus_default_user() and sd_bus_default_system() do not create a new reference. Errors Returned errors may indicate the following problems: -EINVAL Specified parameter is invalid (NULL in case of output parameters). -ENOMEM Memory allocation failed. In addition, any further connection-related errors may be by returned. See sd_bus_send3. Notes 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-config1 file. See Also systemd1, sd-bus3, sd_bus_new3, sd_bus_ref3, sd_bus_unref3, ssh1, systemd-machined.service8, machinectl1