xinetd 參數的問題

xinetd 參數的問題

我創建了這個名為 blah 的 BASH 腳本,它執行類似這樣的簡單操作(見下文)

#./blah -x "bindas"
hello bindas

我想使用帶有動態變數的 xinetd 執行腳本,類似於下面的範例

#telnet localhost 809 "bindas"
hello bindas. 

我不打算將它與 telnet 一起使用,實際上其他一些應用程式會嘗試在 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"

相關內容