명령줄에서 퍼티가 자동으로 "종료 시 창 닫기"를 수행하도록 하는 방법이 있습니까?

명령줄에서 퍼티가 자동으로 "종료 시 창 닫기"를 수행하도록 하는 방법이 있습니까?

스크립트에서 시작할 때 퍼티를 자동으로 실행하고 프로그램이 닫히면 자동으로 다시 시작하는 헤드리스 머신을 만들려고 합니다.

기술적으로는 대부분의 상황에서 잘 작동하지만, 네트워크 문제가 있는 경우 퍼티는 연결이 끊어졌다는 팝업과 함께 중단됩니다.

"종료 시 창 닫기" 옵션을 보았고 이것이 필요한 것임을 알고 있지만 이 작업은 창에서만 수행할 수 있습니다. 명령줄에서 이 설정을 변경하는 방법을 찾지 못했습니다.

이것이 가능한지, 무엇을 설정해야 하는지 아는 사람이 있습니까? 아니면 이것이 이 컴퓨터에서 실행될 전부이므로 기본값을 변경하는 것이 가능한지 아는 사람이 있습니까?

답변1

가장 좋은 해결책은 PuTTY에서 사용자 정의 세션을 생성하고("종료 시 창 닫기" 설정이 변경됨) 명령줄을 통해 해당 세션을 로드하는 것이지만, GUI에 액세스할 수 없는 경우 쉽지 않습니다. 그러나 명령줄을 통해 개별 설정을 지정하는 방법은 없습니다.

그러나 레지스트리를 편집할 수 있는 경우 다음에서 새 키를 생성하여 세션을 생성할 수 있습니다.

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions

그런 다음 GUI의 세션 설정에 해당하는 값을 추가할 수 있습니다. 따라서 종료 시 창이 항상 닫히도록 하려면 값 2가 포함된 CloseOnExit라는 DWORD 값을 추가해야 합니다. 지정되지 않은 다른 모든 항목은 기본값으로 유지됩니다.

그런 다음 추가합니다.

-load "session name"

여기서 "세션 이름"은 생성한 키의 이름입니다. 그 뒤에 다른 명령줄 옵션(예: 서버, 로그인 이름, 비밀번호 등)을 입력하면 모든 설정이 완료됩니다.

제가 직접 테스트해 보았지만 수동으로 편집하기 전에 레지스트리를 백업하는 것이 여전히 현명합니다.

또는 PuTTY 포크(예:퍼티 트레이) 중단 후 자동으로 다시 연결되는 기능이 있지만 얼마나 잘 작동하는지 보장할 수는 없습니다.

답변2

이 오류가 발생하는 경우:

퍼티 오류

그럼 당신은 쓸 수 있습니다AutoIt 스크립트이 창이 나타날 때까지 기다리고 이를 확인합니다.

$title = "PuTTY Fatal Error"
WinWaitActive( $title )
ControlClick($title,"", "Button1", "primary")
sleep(100)
WinClose("PuTTY (inactive)","")

스크립트를 작은 독립 실행형 .exe 파일로 컴파일할 수도 있습니다. PuTTY를 시작하기 전에 이를 배치 파일에 넣으십시오.

답변3

나는 게임에 늦었다는 것을 알고 있지만 퍼티를 사용할 수도 있습니다 plink.exe. putty와 동일한 매개변수를 사용하지만 명령과 매우 유사하게 인라인으로 실행됩니다 ssh. 또한 처리를 차단하고 실패 상태를 반환합니다. 이는 여러 명령 중에 실패한 연결에 매우 유용할 수 있습니다.

관련 정보