SSH 터널을 통해 원격 인스턴스의 다른 Unix 소켓에 연결된 로컬 Unix 소켓이 있습니다.
ssh -N -L $HOME/my.sock:/var/run/another.sock
그러나 ssh를 정상적으로 종료하면(예: ctrl+C 또는 SIGTERM) 문제가 $HOME/my.sock
지속됩니다. 이건 청소가 안 된 것 같더라고요. 이에 대한 옵션/플래그가 있습니까?
이는 명령을 두 번째로 실행하면 기존 소켓 파일로 인해 실패하기 때문에 문제가 됩니다. (기존 소켓 파일을 덮어쓰는 "재사용" 플래그/옵션도 표시되지 않습니다.) 그리고 rm -f $HOME/my.sock
.
답변1
간단히 대답하자면, 명령줄 플래그를 사용하여 제어할 수 있습니다.-o 'StreamLocalBindUnlink=yes'
긴 답변: ssh_config(5)를 참조하세요.
StreamLocalBindUnlink
Specifies whether to remove an existing Unix-domain socket file for local or
remote port forwarding before creating a new one. If the socket file already
exists and StreamLocalBindUnlink is not enabled, ssh will be unable to forward
the port to the Unix-domain socket file. This option is only used for port for‐
warding to a Unix-domain socket file.
The argument must be yes or no (the default).