하위 프로세스가 종료된 후 종료되도록 socat를 실행하는 방법

하위 프로세스가 종료된 후 종료되도록 socat를 실행하는 방법

server.jar연결된 TCP 소켓을 사용하여 마인크래프트를 실행 하고 싶기 때문에 다음을 사용합니다.

socat EXEC:"java -jar server.jar nogui" TCP-LISTEN:25567,fork

아무 문제 없이 서버에 연결하고 연결을 끊을 수 있습니다 telnet. 그러나 서버를 중지하면(pass /stop) 서버가 종료되지만( 로 확인하면 ps auf프로세스가 확실히 사라짐) socat종료되지 않습니다.

어떻게 시작해야 해?소캇그럼 EXEC-child가 종료된 후에 종료되나요? (EXEC: 대신 SYSTEM:을 사용해 보았으나 이는 시도일 뿐입니다.)

답변1

포크 옵션은 socat에게 기본 프로세스에서 계속 수신 대기하고 하위 프로세스에서 연결을 처리하도록 지시합니다. 이를 통해 연결된 각 클라이언트에 하나씩 여러 Minecraft 서버 인스턴스를 동시에 제공할 수 있습니다. 이는 또한 socat 서버가 모든 연결이 끊어진 후에도 계속해서 새로운 연결을 수신하여 연결된 클라이언트에 더 많은 Minecraft 서버 인스턴스를 계속 제공할 수 있음을 의미합니다.

이 포크 옵션을 제거하면 하나의 연결만 허용하고 하나의 Minecraft 서버를 제공한 다음 서버가 중지되면 종료됩니다.

관련 정보