我正在使用此库执行此操作:http://hackage.haskell.org/package/dbus。 这是一个重现它的最小例子:
#!/usr/bin/env stack
-- stack runghc --resolver lts-7.20 --install-ghc --package dbus
import DBus.Client
main = () <$ connectSession
当我尝试启动它时,我收到此错误:
SocketError {socketErrorMessage = "Authentication failed", socketErrorFatal = True, socketErrorAddress = Just (Address "unix:guid=53252465d2726f11957f8b9d58de79ab,path=/tmp/dbus-jUIv1mTBAV")}
但是使用dbus-send
实用程序,我可以毫无错误地发出请求:
$ dbus-send --session --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames
method return time=1490977755.289281 sender=org.freedesktop.DBus -> destination=:1.44 serial=3 reply_serial=2
array [
string "org.freedesktop.DBus"
string "org.gtk.vfs.mountpoint_14512"
string ":1.7"
... rest of the list was removed ...
我正在~/.profile
以这种方式启动DBus守护进程:
DBUS_SESSION_BUS_ADDRESS=`dbus-daemon --fork --session --print-address`
export DBUS_SESSION_BUS_ADDRESS
仅与 FreeBSD 相关,连接到DBus在GNU / Linux上运行良好。