# This is what the init script would do, but it's simpler (and less
# dependent on sysvinit vs. Upstart vs. etc.) if we do it directly.
reload_dbus_config() {
[ -S /var/run/dbus/system_bus_socket ] || return 0
if ! dpkg-statoverride --list "$LAUNCHER" >/dev/null; then dpkg-statoverride --update --add root "$MESSAGEUSER" 4754 "$LAUNCHER"
fi
# This is idempotent, so it's OK to do every time. The system bus' init
# script does this anyway, but you also have to do this before a session
# bus will work, so we do this here for the benefit of people starting
# a temporary session bus in a chroot
dbus-uuidgen --ensure
fi
if [ "$1" = configure ] && [ -n "$2" ]; then
# On upgrades, we only reload config, and don't restart (restarting the
# system bus is not supported by upstream). The code added by
# dh_installinit -r creates a start action, below.
# Recommend a reboot if there is a dbus-daemon running in the same root
# as us. Deliberately not using anything init-related here, to be
# init-agnostic: if we get a false positive (at least one dbus-daemon
# is running but it isn't the system bus) that isn't the end of the
# world, because it's probably a session bus, so the user needs to
# log out and back in anyway.
#
# Debian has /usr/bin/dbus-daemon, Ubuntu has /bin/dbus-daemon.
# Look for both.
if pidof -c /bin/dbus-daemon /usr/bin/dbus-daemon >/dev/null; then
echo "A reboot is required to replace the running dbus-daemon." >&2
echo "Please reboot the system when convenient." >&2
# trigger an update notification that recommends a reboot
# (used by unattended-upgrades etc.)
touch /var/run/reboot-required || true
if ! grep -Fqsx dbus /run/reboot-required.pkgs; then
echo dbus >> /run/reboot-required.pkgs || true
fi
# same thing for the older update-notifier interface
[ -x /usr/share/update-notifier/notify-reboot-required ] && \ /usr/share/update-notifier/notify-reboot-required || true
fi
# Clean up old compatibility symlinks that were used to upgrade from
# Debian 8 to Debian 9. This can be dropped after Debian 10 is released.
for bus in system session; do conf="/etc/dbus-1/${bus}.conf" exp_target="/usr/share/dbus-1/${bus}.conf" target="$(readlink -f "${conf}")" || continue
if [ -h "${conf}" ] && [ "_${target}" = "_${exp_target}" ]; then
rm -f "${conf}"
fi
done
fi
#DEBHELPER#
# Do this after the debhelper-generated bits so that dpkg-maintscript-helper
# will have finished moving configuration files around. We only need to do
# this for upgrades, not new installations.
if [ "$1" = configure ] && [ -n "$2" ]; then
reload_dbus_config
fi
# We don't start dbus.service in postinst, so ensure dbus.socket is running
if [ "$1" = configure ] && [ -d /run/systemd/system ]; then
systemctl try-restart sockets.target || true
fi
Here's the postinst I've got for that package. Maybe the reload_ dbus_config( ) could use a --reply- timeout= 5000 or something?
Thanks
$ cat /fst/trees/ ubuntu/ main/d/ dbus/dbus_ 1.12.20- 2ubuntu4/ debian/ dbus.postinst
#!/bin/sh
# Copyright © 2003 Colin Walters <email address hidden>
# Copyright © 2006 Sjoerd Simons <email address hidden>
set -e
MESSAGEUSER= messagebus /var/run/ dbus /usr/lib/ dbus-1. 0/dbus- daemon- launch- helper
MESSAGEHOME=
LAUNCHER=
# This is what the init script would do, but it's simpler (and less dbus_config( ) { dbus/system_ bus_socket ] || return 0
# dependent on sysvinit vs. Upstart vs. etc.) if we do it directly.
reload_
[ -S /var/run/
dbus-send --print-reply --system --type=method_call \
--dest= org.freedesktop .DBus \ .DBus.ReloadCon fig > /dev/null || true
/ org.freedesktop
}
if [ "$1" = triggered ]; then dbus_config
reload_
exit 0
fi
if [ "$1" = configure ]; then
-- no-create- home \
-- disabled- password \
adduser --system \
--quiet \
--home /nonexistent \
--group "$MESSAGEUSER"
if ! dpkg-statoverride --list "$LAUNCHER" >/dev/null; then
dpkg-statoverr ide --update --add root "$MESSAGEUSER" 4754 "$LAUNCHER"
fi
# This is idempotent, so it's OK to do every time. The system bus' init
# script does this anyway, but you also have to do this before a session
# bus will work, so we do this here for the benefit of people starting
# a temporary session bus in a chroot
dbus-uuidgen --ensure
fi
if [ "$1" = configure ] && [ -n "$2" ]; then
# On upgrades, we only reload config, and don't restart (restarting the
# system bus is not supported by upstream). The code added by
# dh_installinit -r creates a start action, below.
# Recommend a reboot if there is a dbus-daemon running in the same root dbus-daemon, Ubuntu has /bin/dbus-daemon. dbus-daemon >/dev/null; then
# as us. Deliberately not using anything init-related here, to be
# init-agnostic: if we get a false positive (at least one dbus-daemon
# is running but it isn't the system bus) that isn't the end of the
# world, because it's probably a session bus, so the user needs to
# log out and back in anyway.
#
# Debian has /usr/bin/
# Look for both.
if pidof -c /bin/dbus-daemon /usr/bin/
echo "A reboot is required to replace the running dbus-daemon." >&2
echo "Please reboot the system when convenient." >&2
# trigger an update notification that recommends a reboot reboot- required || true
# (used by unattended-upgrades etc.)
touch /var/run/
if ! grep -Fqsx dbus /run/reboot- required. pkgs; then required. pkgs || true
echo dbus >> /run/reboot-
fi
# same thing for the older update-notifier interface update- notifier/ notify- reboot- required ] && \
/usr/ share/update- notifier/ notify- reboot- required || true
[ -x /usr/share/
fi
# Clean up old compatibility symlinks that were used to upgrade from
conf=" /etc/dbus- 1/${bus} .conf"
exp_target= "/usr/share/ dbus-1/ ${bus}. conf"
target= "$(readlink -f "${conf}")" || continue
# Debian 8 to Debian 9. This can be dropped after Debian 10 is released.
for bus in system session; do
if [ -h "${conf}" ] && [ "_${target}" = "_${exp_target}" ]; then
rm -f "${conf}"
fi
done
fi
#DEBHELPER#
# Do this after the debhelper-generated bits so that dpkg-maintscrip t-helper dbus_config
# will have finished moving configuration files around. We only need to do
# this for upgrades, not new installations.
if [ "$1" = configure ] && [ -n "$2" ]; then
reload_
fi
# We don't start dbus.service in postinst, so ensure dbus.socket is running
if [ "$1" = configure ] && [ -d /run/systemd/system ]; then
systemctl try-restart sockets.target || true
fi