xinetd 인수 관련 문제

xinetd 인수 관련 문제

나는 이와 같은 간단한 작업을 수행하는 blah라는 BASH 스크립트를 만들었습니다(아래 참조).

#./blah -x "bindas"
hello bindas

아래 예와 비슷한 동적 변수가 있는 xinetd를 사용하여 스크립트를 실행하고 싶습니다.

#telnet localhost 809 "bindas"
hello bindas. 

나는 그것을 텔넷과 함께 사용하지 않을 것입니다. 실제로 다른 응용 프로그램이 809 포트에서 이 서버와 통신을 시도할 것입니다. 인수를 취하도록 xinetd 파일을 어떻게 정렬할 수 있나요? 나는 server_args가 매개변수를 취할 수 있다는 것을 알았지만 이와 같은 것은 어떻습니까? 이것이 작동합니까?

# This file is being maintained by Puppet.
# DO NOT EDIT

service cont_blah
{
        port            = 809
        disable         = no
        socket_type     = stream
        protocol        = tcp
        wait            = no
        user            = root
        group           = root
        groups          = yes
        server          = /usr/local/bin/blah
        server_args     = -x $1
}

답변1

아니요, 그건 작동하지 않습니다.

TCP 소켓을 통해 수신된 입력은 xinetd에 의해 해석되지 않으므로 스크립트에 명령줄 인수로 전달될 수 없습니다. 귀하의 스크립트는 표준 입력으로 수신된 모든 데이터를 읽어야 합니다. 예:

#!/bin/bash
read name
echo "Hello $name"

관련 정보