"ssh 주소 실행 파일"을 사용할 때 프로세스를 올바르게 중단하는 방법은 무엇입니까?

"ssh 주소 실행 파일"을 사용할 때 프로세스를 올바르게 중단하는 방법은 무엇입니까?

원격 호스트에서 내 프로그램을 테스트하려면 다음 명령을 실행합니다 ssh address ./my_executable. 이 프로그램 my_executable은 오래 실행되는 프로그램이지만 개발 중에 CTRL+C를 사용하여 자주 중단됩니다. 문제는 CTRL+C가 ssh 세션을 중단하지만 내 프로세스를 종료하지 않는다는 것입니다. 따라서 다시 실행하려고 하면 내 프로세스가 여전히 리소스를 사용하고 있기 때문에 오류가 발생합니다.

현재 해결 방법을 사용하고 있습니다. ssh address ./my_executable; echo DONE; ssh address pkill my_executable

하지만 ssh를 통해 명령 모드에서 실행 중인 프로그램을 중단하는 더 좋은 방법이 있습니까?

로그인 ssh address하여 실행파일을 실행시키면 당연히 원격 터미널에 신호가 전달되기 때문에 문제가 발생하지 않지만 입력이 더 많이 필요하고 자동화할 수 없습니다. 

답변1

터미널을 명시적으로 사용 하면 ssh터미널이 필요하지 않더라도 원하는 동작을 얻을 수 있습니다.

ssh -t address ./my_executable

그러면 대신 CtrlC종료됩니다 (종료할 때 연결이 닫히므로 어쨌든 즉시 종료됩니다 ).my_executablesshmy_executable

관련 정보