어떤 프로세스/서비스/프로그램이 systemd dbus 메시지를 보내는지 확인하는 방법은 무엇입니까?

어떤 프로세스/서비스/프로그램이 systemd dbus 메시지를 보내는지 확인하는 방법은 무엇입니까?

현재 내 시스템 로그는 다음 형식의 메시지로 채워져 있습니다.

Feb 01 16:40:31 host systemd[1]: Got message type=method_call 
sender=:1.58666 destination=org.freedesktop.systemd1 object=/org
/freedesktop/systemd1 interface=org.freedesktop.DBus.Properties member=Get
cookie=2 reply_cookie=0 error=n/a

유일한 식별자는 보낸 사람인 것 같습니다. 이는 몇 초마다 변경되는 것 같습니다(그래서 보낸 사람을 PID에 매핑할 수 없습니다). 하드웨어나 OS 조건이 비슷한 다른 시스템에서는 이런 일이 발생하지 않는 것 같습니다. 이 메시지를 보내는 사람을 식별할 수 있는 방법이 있습니까(프로세스/서비스 등을 중지하거나 보낸 메시지의 양을 제어할 수 있도록).

답변1

사이에는 매핑 관계가 있습니다.고유한 연결 이름 그리고 프로세스를 통해 접근할 수 있습니다 busctl.

몇 초 동안 안정적으로 유지된다면, 그런 일이 발생했을 때 잡을 수 있도록 행운을 시험해 볼 수 있습니다.

journalctl -f | \
while read line ; do
        echo "$line" | grep "sender=:"
        if [ $? = 0 ]
        then
                busctl --no-pager | grep
        fi
done

(기준으로이 답변)

관련 정보