다른 쪽 끝이 닫힐 때 socat이 종료되지 않도록 방지

다른 쪽 끝이 닫힐 때 socat이 종료되지 않도록 방지

내 애플리케이션의 입력과 출력을 Unix 소켓으로 리디렉션하고 다른 세션에서 해당 소켓에 연결하고 싶습니다. 지금까지 내가 하고 있는 일은 다음과 같습니다.

"서버" 측에서:

socat EXEC:"command" UNIX-LISTEN:/tmp/comm

"클라이언트" 측:

socat UNIX-CONNECT:/tmp/comm -

잘 작동하지만 클라이언트가 socat종료되면 서버도 종료됩니다. 하지만 계속 실행하고 나중에 다시 연결하고 싶습니다. 어떻게 해야 합니까?

답변1

fork하위 프로세스에서 연결을 처리하여 상위 프로세스가 더 많은 연결을 처리하도록 하는 옵션을 사용해야 합니다 .

첫 번째 터미널에서:

$ socat - UNIX-LISTEN:/tmp/comm,fork

두 번째 터미널에서:

$ socat UNIX-CONNECT:/tmp/comm -

두 번째 터미널에서 Ctrl+를 누르고 C첫 번째 터미널로 전환하여 서버가 아직 실행 중인지 확인하세요.

관련 정보