추가 읽기

추가 읽기

rtkit-daemon최근에 나는 Debian 10.4 컴퓨터에서 실행되는 프로세스가 해당 컴퓨터의 사용자 정의 서버 응용 프로그램을 방해할 수 있다는 것을 발견했습니다 . 그래서 다음과 같이 실시간 제품군 데몬을 비활성화하고 싶습니다.

$ sudo systemctl stop rtkit-daemon.service
$ sudo systemctl disable rtkit-daemon.service

그러면 프로세스가 올바르게 중지(및 비활성화)됩니다 rtkit-daemon. 그러나 잠시 후 다시 실행되는 것을 확인했으며 시스템 로그에서 다음 줄을 발견했습니다.

Jun 12 16:15:12 box-63 dbus-daemon[453]: [system] Activating via systemd: service name='org.freedesktop.RealtimeKit1' unit='rtkit-daemon.service' requested by ':1.6746' (uid=1000 pid=11857 comm="python pipecheck.py")
Jun 12 16:15:12 box-63 systemd[1]: Starting RealtimeKit Scheduling Policy Service...
Jun 12 16:15:12 box-63 dbus-daemon[453]: [system] Successfully activated service 'org.freedesktop.RealtimeKit1'
Jun 12 16:15:12 box-63 systemd[1]: Started RealtimeKit Scheduling Policy Service.

이것이 python pipecheck.py우리의 맞춤형 애플리케이션입니다.
D-Bus가 애초에 우리 애플리케이션을 위한 실시간 제품군을 출시하는 이유는 무엇입니까?

어쨌든, dbus-daemon다시 출시된 것 같습니다 rtkit-daemon.
이를 방지하고 라이브 스위트 데몬을 영구적으로 비활성화하려면 어떻게 해야 합니까?

답변1

데스크탑 버스 활성화에 오신 것을 환영합니다! 이는 고통스러운 일이므로 피해야 합니다.

데스크탑 버스 클라이언트(일종)는 데스크탑 버스 에이전트 org.freedesktop.RealtimeKit1에게 D-Bus 서버와 통신하도록 요청합니다. 프로그램이 실행 되면 rtkit-daemon이 이름으로 D-Bus 에이전트에 등록됩니다. 실행 중이 아닐 때 에이전트가 호출합니다.D-버스 활성.

이 경우 클라이언트가 D-Bus 에이전트에 쿼리하면 에이전트는 파일에 지정된 내용을 살펴봅니다 org.freedesktop.RealtimeKit1.service. (이것은아니요시스템 서비스 단위 파일이지만 D-Bus 구성 파일이 있는 /usr/{local/,}share/dbus-1/system-services/D-Bus도 이 .service확장을 사용합니다. ) 에이전트는 이 파일을 통해 systemd 시스템에서만 org.freedesktop.RealtimeKit1서버가 systemd 서비스로 관리된다는 사실을 알게 됩니다 rtkit-daemon.service.

브로커는 systemd문서화되지 않은 특별한 방식을 사용하여 동일한 데스크탑 버스를 통해 대화합니다.org.freedesktop.systemd1.Activator D 버스활성화가 필요한 서비스의 이름rtkit-daemon.service 체계메시지 가 포함된 서비스 ActivationRequest. 이 문서화되지 않은 활성화 함수개념 없음서비스는 활성화된 경우에만 활성화됩니다. 그것언제나비활성화된 경우에도 서비스를 활성화하십시오.

따라서 아이러니하게도 rtkit-daemon명백한 비활성화 방법( disable명령)을 사용하여 비활성화할 수 없습니다. 대신 다음을 수행할 수 있습니다.

  • ... D-Bus 서버를 활성화하는 방법이 org.freedesktop.RealtimeKit1.service포함되지 않은 사용자 고유의 파일로 이 파일을 덮어씁니다 .org.freedesktop.RealtimeKit1
  • ...D-Bus 클라이언트가 무엇을 요구하는지 알아내고 org.freedesktop.RealtimeKit1이를 busctl monitor중지합니다.
  • 마스크rtkit-daemon.service이런 시스템화된 서비스시스템 자체Desktop Bus 에이전트가 문서화되지 않은 특별한 API 요청을 통해 활성화하더라도 활성화 방법을 모릅니다.

system-controlreset이것이 동사(현재 활성화/비활성화 상태에 따라 서비스 시작/중지)를 사용하고 대신 교체 dbus-daemon-launch-helper호출을 사용하는 이유 중 하나입니다 .system-control resetsystem-control activate

추가 읽기

답변2

열심히 찔러보세요:

sudo mv /usr/bin/dbus-daemon /usr/bin/dbus-daemonx
sudo ln -s /bin/true /usr/bin/dbus-daemon

원본 파일을 삭제하고 패키지를 다시 설치하여 복원할 수도 있습니다...

다른 원치 않는 항목에도 동일한 방법이 적용됩니다 ^^

관련 정보