2011-01-18 3 views
0

X11 화면 보호기 확장 클라이언트 라이브러리를 사용하여 마지막 사용자 입력 이후 시간을 감지하려고합니다. 유휴 시간을 얻으려면 정기적으로 XScreenSaverQueryInfo 번으로 전화를 겁니다. 내가 직면하고있는 문제는 매 20-30 초 후에 유휴 시간이이 호출에 의해보고 된대로 0으로 다시 설정된다는 것입니다.이 시간에 실제 사용자 입력이 없더라도 발생합니다. 나는 이것으로 완전히 혼란 스럽다. 유일한 단서는 내가 gnome-screensaver을 제거하면 문제가 사라진다는 것입니다. 제 질문은 gnome-screensaver이 어떤 이유로 사용자 입력을 시뮬레이트합니까? 나는 그럴 가능성이 없다는 것을 알고 있으며, 그렇다면 gnome-screensaver을 가진 버그가 될 것이 분명합니다. 그러나 지금 당장은 다른 것을 생각할 수 없습니다. 누구든지 gnome-screensaver이 어떻게 작동하고 실제로 코드를 통과하지 않고도 XScreenSaverQueryInfo 호출에 영향을 미치는 방식에 대한 정보를 어디서 찾을 수 있는지 알고 있습니까? gnome-screensaverhome에있는 정보를 살펴 보았지만 문제와 관련이 없습니다.Linux에서 30 초 후 사용자 유휴 시간이 0으로 재설정 됨

업데이트 : dbus-monitor에서 다음 출력을 받았습니다. 어떻게 해석합니까 :

method call sender=:1.97538 -> dest=org.gnome.ScreenSaver serial=3 path=/org/gnome/ScreenSaver; interface=org.gnome.ScreenSaver; member=SimulateUserActivity 

나는 어떤 프로세스가 gnome-screensaver에 SimulateUserActivity를 요구하고 있다고 생각합니다. 또는 gnome-screensaver가 dbus에 SimulateUserActivity 신호를 보내고 있습니까? 첫 번째 경우, 어떤 프로세스가 gnome-screensaver에 그렇게하도록 요청하는지 어떻게 알 수 있습니까?

답변

2

당신이 할 수 있습니다

dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetConnectionUnixProcessID string:':1.97538' 

실제 발신자에 연결. 메시지를 보내는 pid를 제공합니다.

그런 다음 당신이 할 거라고는 PID가 2144라고 : 프로그램이 무엇인지 볼 수

cat /proc/2144/cmdline 

방법 하나.

+0

나는 그것을했다. 그것은 말합니다 : 오류 org.freedesktop.DBus.Error.NameHasNoOwner : 이름 ': 1.ddddd'의 PID를 가져올 수 없습니다. 그런 이름이 없습니다. 여기에서 1.ddddd는 실제 발신자입니다. – 341008

+0

은 연결 대상을 가리키고 SimulateUserActivity를 전송 한 다음 연결을 끊고 조사 할 수 있습니다. 위의 gnome-screensaver-command -poke를 참고하십시오. gnome-screensaver-command를 쉘 스크립트로 대체하는 제안은 흥미 롭습니다. –

1

gnome-screensaver-command --poke 명령을 보내는 프로그램이 비디오를 재생하는 동안 SimulateUserActivity 이벤트를 전송하여 화면 보호기가 활성화되지 않도록 유휴 시간을 재설정 할 수 있습니다. (이 DBUS 모니터에 표시된)는 DBUS 보낸 사람이 있으면

+0

전경 프로세스가 실행되고 있지 않습니다. 어떤 응용 프로그램에서 쿼리를 수행 할 수있는 방법이 있습니까? – 341008

+0

gnome-screen-command 프로그램을 누가 호출했는지 인쇄 할 쉘 스크립트로 덮어 쓸 수 있습니다. 물론 누군가가 대신 DBus 인터페이스를 사용할 수도 있습니다. – ismail

+0

dbus-monitor의 출력을 포함하도록 내 질문을 업데이트했습니다. 무슨 뜻인지 알 겠어? – 341008