
我創建了這個名為 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"