포트 전달을 위해 특별히 열린 SSH 세션이 있으므로 -N
명령줄에 또는 이 있습니다. -NT
이 세션을 "정상적으로 종료"하도록 지시하는 올바른 방법이 무엇인지 궁금합니다. cc( SIGINT
)를 클릭하면 클라이언트가 종료된다는 것을 알고 있지만 종료 코드가 0이 아닙니다. "개행 문자 뒤의 물결표" 이스케이프 시퀀스를 시도했지만 인식되지 않는 것 같습니다. 콘솔은 물결표와 점만 표시하며 ssh(1) 동작은 관찰되지 않습니다.
또한 종료할 방법도 찾을 수 없습니다 ssh -Nt
. 다른 터미널 세션을 열고 비슷한 작업을 수행해야 합니다 killall ssh
.
OpenSSH 8.6p1을 실행 중입니다.
답변1
killall ssh
SIGTERM
매우 표준적인 - 일반적으로 Unix/Linux의 응용 프로그램에 종료를 지시하는 방법인 신호를 보냅니다 .
kill -l
SIGQUIT
예를 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
신호만 처리할 수는 없습니다.