다음 예제에서는 화면 보호기가 활성화되면 Pidgin의 상태를 “키보드에서 멀리”로 설정하는 Python 스크립트를 구현합니다. 스크립트는 화면 보호기에서 신호를 기다린 다음 Pidgin에서 메서드를 호출하는 D-Bus의 두 가지 측면을 보여 주었습니다. 스크립트는 목록 1에 표시됩니다. D-Bus를 사용하면 다른 프로그램에 서비스를 제공하는 모든 프로그램이 등록됩니다. 그런 다음 다른 프로그램에서 사용할 수 있는 서비스를 조회할 수 있습니다. 또한 프로그램은 일부 시스템 서비스가 핫 스와핑 하드웨어를 검색하는 이벤트에 등록할 수 있습니다. bool은 이 메서드가 true 또는 false일 수 있는 부울 값을 반환한다는 것을 의미합니다. 메서드가 값을 반환하지 않는 경우(예: org.freedesktop.PowerManagement.일시 중단)) 줄은 bool 대신 void를 나열합니다. 이 가이드의 목적은 명령줄을 사용하여 일부 응용 프로그램에 수동으로 Dbus 메시지를 보낼 수 있도록 하는 것입니다.이 작업을 수행 하기 위해 dbus 모니터를 사용 하 여 전송 되는 Dbus 메시지를 확인 하 고 dbus-send 원하는 메시지를 보낼 수 있습니다. qdbusviewer를 실행하면 세션 버스와 시스템 버스라는 두 개의 탭이 표시됩니다.

각 탭에서 왼쪽 창에는 서비스 이름 목록이 표시됩니다. 서비스 이름을 클릭하면 오른쪽 창에 사용 가능한 메서드 및 신호와 같은 해당 서비스에 대한 정보가 표시됩니다. 예를 들어 서비스 org.freedesktop.PowerManagement를 클릭한 다음 계층 구조/, 무료 데스크톱/및 PowerManagement/를 통해 오른쪽 창을 클릭하면 D-Bus 경로의 두 부분인 org.freedesktop.PowerManagement를 탐색하게 됩니다. 왼쪽 창은 서비스 이름이며 오른쪽 창의 조직/무료 데스크톱/PowerManagement는 개체 경로입니다. 이렇게 하면 qdbusviewer에서 본 것과 동일한 메서드 및 인터페이스 목록이 표시됩니다. 예를 들어, 라인: qdbus를 사용하면 이러한 메서드를 직접 호출할 수도 있습니다. 예를 들어 Suspend 메서드를 호출하려면 실행: 그렇다면 자체 응용 프로그램에서 D-Bus를 어떻게 지원하거나 사용합니까? 핵심 API는 C로 작성되며 다소 낮은 수준입니다. 응용 프로그램 프로그래머가 사용할 수 있도록 특별히 설계되지 않았습니다. 다른 프로그래밍 언어와 환경에는 GLib, Qt, 파이썬, 루비, 펄 및 모노와 같은 이 API 위에 바인딩 계층이 구축되어 있습니다. 여기서는 C 또는 GLib(그놈의 기본 라이브러리) 프로그래밍에 들어가지 않지만 파이썬및 루비와 같은 스크립트 언어와 셸 스크립트로 작성된 몇 가지 예제를 제공합니다.

나는 이미 D-버스를 사용하는 첫 번째 방법을 언급했습니다 : KDE 프로그램 qdbusviewer 및 qdbus를 사용하여. 그러나 KDE에 들어가지 않는 경우 명령줄 프로그램 dbus-send 및 dbus-monitor를 사용하여 각각 D-Bus 메시지를 보내고 모니터링할 수 있습니다. 예를 들어, 다음 명령으로 시스템을 일시 중단 모드로 넣을 수 있습니다: D-Bus 스크립트를 디버깅하거나 다른 D-Bus 응용 프로그램의 메서드및 신호를 관찰하는 경우 명령줄 프로그램 dbus-monitor가 매우 편리합니다.

 

Comments are closed.

Set your Twitter account name in your settings to use the TwitterBar Section.