2017-11-23 32 views
1

SSH 서버가 실행 중이며 JavaFX 응용 프로그램을 닫고 열어야합니다. 문제없이대화 형 서비스 원격 서버 (JSCH)에서 응용 프로그램을 열 때 검색 표시

sendCommand("wmic Path win32_process Where \"CommandLine Like '%Test.jar%'\" Call Terminate"); 

명령은 위의 응용 프로그램을 닫습니다 : freeSSHd와 JSch를 사용하여, 내가 사용하는 응용 프로그램을 종료 할 수 있었다. "이 컴퓨터에서 실행되는 프로그램이 시도 :

sendCommand("cmd /c cd C:/Test/dist && java -jar Test.jar"); 

무엇 발생하는 대화 형 서비스 감지에서 창 메시지 열립니다이다 :

내가 응용 프로그램을 다시 시작해야

, 내가 사용하는 것을 시도하고있다 메시지를 표시합니다 ". 메시지를 열면 JavaFX 응용 프로그램이 표시됩니다.

JavaFX 응용 프로그램을 원격 컴퓨터에서 직접 열어야합니다. 이 행동이 정상입니까? SSH (JSch)를 사용하여 이것을 달성 할 수 있습니까? PSExec은 대안이지만 모든 클라이언트 컴퓨터에 설치해야한다는 것을 알고 있습니다.

PuTTY 콘솔에서 명령을 실행해도 똑같은 일이 발생합니다.

"세션 0 격리"와 관련이 있다고 생각하지만이게 무슨 뜻인지는 모르겠다.

+0

"원격 컴퓨터에서 직접"* 무엇을 의미합니까? –

+0

@MartinPrikryl 정상적으로 열려면 애플리케이션을 열어야합니다 (병을 두 번 클릭하지만 원격으로). –

답변

1

일반적으로 (SSH) 서버는 Windows 서비스로 실행됩니다.

윈도우 서비스는 별도의 Windows 세션 (google for "세션 0 격리")에서 실행됩니다. 대화 형 (사용자) Windows 세션에 액세스 할 수 없습니다.

"대화 형 서비스 탐지"가 응용 프로그램을 차단하는 것은 아닙니다. 그 반대입니다. 서비스가 보이지 않는 세션 0에 GUI를 표시하려고한다는 것을 감지하고 사용자 세션에서 GUI를 복제 할 수 있도록하는 "대화 형 서비스 탐지"서비스입니다.

또한 Windows에 여러 개의 사용자 세션 (여러 명의 로그인 한 사용자)이있을 수 있습니다. SSH 서버는 어떻게 GUI를 표시 할 것인가? (가능하다면)? 나는 "Interactive Services Detection"이 모든 사용자 세션에서 프롬프트를 보여주고, 프롬프트를 받아들이는 첫 번째 사용자가 GUI를 얻는다고 추측합니다 (단지 추측 일뿐입니다).


서비스 대신 대화식 Windows 세션에서 SSH 서버를 실행할 수 있습니다. 그것은 그것의 제한이 있습니다. 실제로 FreeSSHD는 설치할 때 서비스로 설치할지 여부를 묻습니다.

FreeSSHd를 전혀 사용하지 않는 것이 좋습니다. 그것은 꽤 버그가 많고 잘 유지되지 않습니다. 일반적으로


는,이 모든 (원격 SSH를 통해 Windows에서 실행되는 GUI 응용 프로그램) 나에게 좋은 생각처럼 보이지 않는다.

+0

마틴에게 감사합니다. 지금은 Windows 서비스로 실행 중입니다. 이미 SSH를 사용하여 프로세스를 종료 할 수 있으므로 GUI를 여는 다른 방법을 시도 할 것입니다. –