Be careful only to kick ones which are already running, by poking D-Bus
and seeing what happens.
# --- Start an ssh authentication agent ---
-if stuff=$(gnome-keyring-daemon -s 2>/dev/null); then
- eval "$stuff"; export GNOME_KEYRING_CONTROL SSH_AUTH_SOCK
+if [ "$DBUS_SESSION_BUS_ADDRESS" ] &&
+ dbus-send --session --print-reply --dest=org.freedesktop.DBus \
+ / org.freedesktop.DBus.GetNameOwner string:org.gnome.keyring \
+ >/dev/null 2>/dev/null &&
+ stuff=$(gnome-keyring-daemon -s 2>/dev/null)
+then
+ eval "$stuff"
+ export GNOME_KEYRING_CONTROL SSH_AUTH_SOCK
fi
eval `start-ssh-agent -b`