TCP를 통해 UNIX 도메인 소켓을 직접 노출하는 방법


13

예를 들어 TCP를 통해 노출되는 /var/program/program.cmd와 같은 UNIX 도메인 소켓을 포트 12345에서 사용하고 싶습니다. 백그라운드에서 풀 타임으로 실행하고 싶습니다.

가장 좋은 방법은 무엇입니까? 관련 시스템이 Ubuntu 12.04.2를 실행 중입니다.

또한 제안 된 솔루션으로 도메인 소켓을 제거하고 다시 생성 한 후에도 지속됩니까?

편집하다

다음은 init 스크립트 형식으로 허용 된 답변의 결과입니다. https://github.com/Wirehive/haproxy-remote

답변:


18

socat유닉스 소켓을 TCP 소켓으로 내보내는 데 사용할 수 있습니다 . 그렇게하는 명령은 다음과 같습니다.

socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd

이것은 12345 포트에서 TCP 소켓 수신을 생성하여 언급 된 프로그램의 유닉스 소켓에 연결됩니다.

삭제 문제에 대해서는 직접 테스트하지 않았습니다. 당신은 그것을 확인하고 그것에 대해 말할 수 있습니다 :)

참고 : socat이 설치되어 있지 않을 수 있습니다 apt-get install socat. 설치하려면 다음 을 입력 하면됩니다.


1
각 통신 후에 종료되었지만 거의 효과가있었습니다. 놀아 본 후 나는 다음과 같이 성공했습니다 socat TCP-LISTEN:12345,reuseaddr,fork,su=haproxy UNIX-CLIENT:/var/program/program.cmd. 질문은 백그라운드에서 어떻게 실행시키는 것입니까?
SimonJGreen

@SimonJGreen :이 명령은 입력이 필요한 대화식 명령이 아니므로 명령 &끝에 추가 하면됩니다.
Khaled

OK 제안을 실행하고 처리하기 위해 init 스크립트를 작성했습니다. 관심있는 사람의 결과는 다음과 같습니다! github.com/Wirehive/haproxy-remote
SimonJGreen

@alexandermensa는 정교하게 관리?
Eduardo Bezerra
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.