DBus 서비스 이름의 소유자를 알아보세요.

DBus 서비스 이름의 소유자를 알아보세요.

어떤 프로그램이 서비스를 구현하는지 찾는 방법을 찾을 수 없습니다 org.freedesktop.Notifications. DBus에서 어떤 프로그램을 제공하는지 알려주실 수 있나요?

이 질문을 하는 이유는 간단합니다. 사용하고 싶은 새 데스크톱 알림 데몬을 찾았지만 시작되지 않고 대신 이 메시지에 대해 불평합니다.

이름이 사라졌습니다. 다른 알림 데몬이 실행 중입니까?

그런데 무슨 프로그램인지는 알 수가 없네요이름을 잡아라. 다른 모든 알림 데몬을 제거하고 X 서버를 다시 시작했으며 심지어 컴퓨터도 재부팅했습니다.

그러나 이 명령을 실행하면 다음과 같습니다.

dbus-send --session --dest=org.freedesktop.DBus --type=method_call \
--print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

string "org.freedesktop.Notifications"출력에 나타나므로무엇이름은 유지되지만 원하는 데몬을 시작할 수 없습니다.

답변1

PID발신자에게 응답할 수 있는 방법은 다음과 같습니다.org.freedesktop.DBus.GetConnectionUnixProcessID:

qdbus  org.freedesktop.DBus /org/freedesktop/DBus \
org.freedesktop.DBus.GetConnectionUnixProcessID org.freedesktop.Notifications
737화

그게 전부입니다 PID.
원하는 경우 dbus-send( qdbusKDE에 따라) 다음을 수행하십시오.

dbus-send --session --print-reply --dest=org.freedesktop.DBus / \
org.freedesktop.DBus.GetConnectionUnixProcessID string:org.freedesktop.Notifications
uint32 737

원하는 경우 gdbus(GNOME에만 해당) 다음을 수행하세요.

gdbus call --session --dest org.freedesktop.DBus --object-path / --method \
org.freedesktop.DBus.GetConnectionUnixProcessID org.freedesktop.Notifications
(uint32 737,)

업데이트된 설정에서는 다음을 systemd사용할 수도 있습니다 busctl.

busctl --user call org.freedesktop.DBus /org/freedesktop/DBus  \
org.freedesktop.DBus GetConnectionUnixProcessID s org.freedesktop.Notifications
너 737

답변2

d-버스 디버깅 유틸리티D 피트많은 시스템에서 패키지로 제공되며 서비스를 제공하는 프로세스 ID와 명령을 찾을 수 있는 것으로 보입니다. 예를 들어, 나는페도라 23 xfce4 X11 시스템플랫폼을 선택하고 Session Bus서비스 이름을 입력합니다 org.freedesktop.Notifications. 서비스를 검사하고 활성화한 후 pid와 /usr/lib64/xfce4/notifyd/xfce4-notifyd명령을 표시합니다.

활성화 전

활성화 후

관련 정보