It seemed to be security feature - this git commit resolves the issue by not trashing the env array.
https://bitbucket.org/tildeslash/monit/issue/6/dbus-session-bus
A dirty workaround for those stuck to monit 5.4 or earlier (last tested):
A dirty hack to get a session bus from other processes env variables (only tested with a single user):
#! /bin/sh DBUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS /proc/*/environ 2> /dev/null| sed -e 's/\/proc\/[^\/]*\/environ\:/ /g'| cut -d ' ' -f 2` if [ "x$" != "x" ]; then export $ fi