내 애플리케이션의 입력과 출력을 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첫 번째 터미널로 전환하여 서버가 아직 실행 중인지 확인하세요.