`ssh -N`을 종료하는 "표준" 방법은 무엇입니까

`ssh -N`을 종료하는 "표준" 방법은 무엇입니까

포트 전달을 위해 특별히 열린 SSH 세션이 있으므로 -N명령줄에 또는 이 있습니다. -NT이 세션을 "정상적으로 종료"하도록 지시하는 올바른 방법이 무엇인지 궁금합니다. cc( SIGINT)를 클릭하면 클라이언트가 종료된다는 것을 알고 있지만 종료 코드가 0이 아닙니다. "개행 문자 뒤의 물결표" 이스케이프 시퀀스를 시도했지만 인식되지 않는 것 같습니다. 콘솔은 물결표와 점만 표시하며 ssh(1) 동작은 관찰되지 않습니다.

또한 종료할 방법도 찾을 수 없습니다 ssh -Nt. 다른 터미널 세션을 열고 비슷한 작업을 수행해야 합니다 killall ssh.

OpenSSH 8.6p1을 실행 중입니다.

답변1

killall sshSIGTERM매우 표준적인 - 일반적으로 Unix/Linux의 응용 프로그램에 종료를 지시하는 방법인 신호를 보냅니다 .

kill -lSIGQUIT예를 SIGINT들어 다음과 같은 다양한 옵션이 있습니다 .

자세한 내용은 이 토론을 확인하세요.https://stackoverflow.com/questions/4042201/how-does-sigint-relate-to-the-other-termination-signals-such-as-sigterm-sigquit

또는 정식 glibc 문서:https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html

$ ssh -N localhost; echo $?
birdie@localhost's password: 
0

(다른 터미널에서)

$ killall ssh

신호 처리는 애플리케이션마다 다르기 때문에 궁극적으로 소스 코드를 참조해야 합니다. 분명한 이유로 SIGKILL합계 SIGSTOP신호만 처리할 수는 없습니다.

관련 정보