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-control
reset
이것이 동사(현재 활성화/비활성화 상태에 따라 서비스 시작/중지)를 사용하고 대신 교체 dbus-daemon-launch-helper
호출을 사용하는 이유 중 하나입니다 .system-control reset
system-control activate
추가 읽기
- 조나단 데보인 폴라드(2016).데스크탑 버스(D-Bus) 버스 활성화 방지 . 무언가를 먹다. 소프트웨어.
- 조나단 드 보인 폴라드. "
reset
."system-control
. 스낵 가이드. - 조나단 드 보인 폴라드.
dbus-daemon-launch-helper
. 스낵 가이드.
답변2
열심히 찔러보세요:
sudo mv /usr/bin/dbus-daemon /usr/bin/dbus-daemonx
sudo ln -s /bin/true /usr/bin/dbus-daemon
원본 파일을 삭제하고 패키지를 다시 설치하여 복원할 수도 있습니다...
다른 원치 않는 항목에도 동일한 방법이 적용됩니다 ^^