클라이언트 서버 Java 프로그램이 있습니다. 클라이언트의 임무는 화면을 캡처하고 데이터를 서버로 보내는 것입니다. 다른 기능은 서버가 제공한 웹사이트를 열고 일부 텍스트를 서버로 보내는 것입니다. 클라이언트가 시작 시 실행되기를 원했기 때문에 스크립트를 작성하여 사용한 /etc/init.d
다음 update-rc.d scriptname defaults
다시 시작했습니다. 다시 시작한 후 수신되어야 하는 텍스트가 완벽하게 작동합니다. 하지만 클라이언트에서 캡처한 화면을 탐색하거나 수신할 수 없습니다.
init.d에서 사용하는 스크립트는 다음과 같습니다.
#!/bin/sh
### START INIT INFO
# Provides: suscript
# Required-Start: $remote_fs $syslog $local_fs $network
# Required-Stop: $remote_fs $syslog $local_fs $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
java -jar /etc/capture/capture.jar
클라이언트 jar를 루트로 실행하고 있습니다. 그래픽 데이터를 서버로 전송하는 방법은 무엇입니까?
답변1
Java에는 스크린샷을 캡처하기 위한 Rectangle 클래스가 있으므로 이를 사용하여 내 앞에 나타나는 화면을 데스크탑으로 캡처합니다. 아마도 X 세션의 스크린샷을 찍는 데 사용할 것 같습니다.
X 세션이 여러 개 있을 수도 있고 없을 수도 있으며 어떤 경우에도 프로세스는 다음과 동일합니다.어느따라서 캡처할 화면을 갖는 것을 고려하는 방법을 말하기는 어렵습니다. 물리적 모니터가 연결된 시스템에서 실행되고 있다고 해서 프로세스가 해당 모니터에서 실행되고 있다는 의미는 아닙니다. 달리기백그라운드에서체계적인.
프로세스가 X 세션에서 실행되도록 하는 방법이 있다면 그것이 무엇인지 설명해야 합니다. 자동으로 발생하지 않습니다. 더 멀리:
# Required-Start: $remote_fs $syslog $local_fs $network
이들 중 어느 것도 X에 대한 내용을 포함하지 않으며 GUI가 실행되기 전에 서비스가 시작될 가능성이 높습니다(스플래시 화면은 GUI가 아닌 이미지일 뿐이라는 점을 기억하십시오). 이 경우 해당 인터페이스가 필요한 부분은 실패하게 됩니다.
디스플레이 관리자를 사용한다고 가정하면 init 시스템이 이와 관련된 프로세스를 예약하는 방법을 살펴보고 시작하기 위한 전제 조건을 설정해야 합니다.뒤쪽에DM.