두 프로그램에는 d-bus 서비스가 필요합니다. 두 프로그램을 동시에 실행하려면 어떻게 해야 합니까?

두 프로그램에는 d-bus 서비스가 필요합니다. 두 프로그램을 동시에 실행하려면 어떻게 해야 합니까?

나는 다음과 같은 설정을 가지고 있습니다 :

  • 스크린세이버로 사용했어요 xscreensaver(예뻐서)
  • 화면을 잠그는 데 사용했습니다 light-locker(더 안전하기 때문에 xscreensaver).

최근 dbus xscreensaver에 바인딩하기 시작했습니다 org.freedesktop.ScreenSaver. 따라서 다른 하나가 불평한 후에 시작했기 때문에 더 이상 병렬로 실행할 수 없습니다 a screensaver is already running.

나는 읽었다ArchWiki에서서비스에는 특정 가능성이 있습니다 override. 하지만 막연하고 d-bus에 익숙하지 않습니다.

소스 코드를 변경하지 않고 두 가지를 공존시킬 수 있는 방법이 있습니까?

기록에 따르면 DBUS_SESSION_BUS_ADDRESS에테르 화면 보호기를 시작하기 전에 환경 변수를 설정 해제해도 아무런 효과가 없습니다.

편집: 내 연구에서 본 바에 따르면 프로그램에 문제를 일으키지 않고 프로그램이 d-bus 서비스를 듣는 것을 방지하는 것은 불가능해 보입니다. 누군가 나에게 이것을 확인해 줄 수 있다면 그것은 좋은 대답이 될 것입니다.

답변1

답변 중 불쾌한 부분은 다음과 같습니다.노력하다다시 병렬로 실행하면 손상이 발생할 가능성이 높습니다. D-bus는 버스처럼 작동하므로 특정 규칙에 따라 메시지를 보내는 사람과 받는 사람이 있습니다. 화면 보호기의 경우 가장 가능성이 높은 규칙은 화면 보호기가 시스템의 하나일 뿐이고 다른 소프트웨어는 D-버스를 사용하여 화면 보호기나 기타 표준 기능 호출을 방지할지 여부를 알리는 것입니다.

즉, 카우보이 방식을 시도하고 시행착오를 통해 일부 D-Bus 기본 사항을 배우고 싶다면 /usr/share/dbus-1/services/일반적으로 디렉토리에 D-Bus 서비스 이름과 정확히 이름이 지정되고 .service. 너 어디가능한org.freedesktop.ScreenSaver.service문서 도 찾을 수 있습니다 .

편집으로 인해 시스템이 손상될 수 있다는 점에 대비하여 시스템이 손상된 경우 복구하는 방법을 알아 두십시오. 하지만여기 용이 있어요, 귀하는 이를 수행할 때 위험을 감수해야 하며 작업 시스템이 중단될 수 있습니다.

관련 정보