inetd の使い方

最初にサーバープログラムを作成します。普通に標準入力から入力し、標準出力に出力するプログラムです。それを gcc -o hello hello.c のようにコンパイルして実行ファイル hello を作ります。

次に su で root 権限になってそのプログラム用のサービスを /etc/services に登録します。

# cat /etc/services
.............
atok12x         6800/tcp                        # ATOK12 Server
vjed            11493/tcp                       # VJE-Delta Server
wnn7            22273/tcp                       # Wnn7 Server

# Local services
hi              60001/tcp

新しく登録したサービス hi を /etc/inetd.conf に登録します。

# cat /etc/inetd.conf
.............
# identd is run standalone now
#
#auth   stream  tcp     wait    root    /usr/sbin/in.identd in.identd -e -o
#
hi  stream  tcp     nowait  xxxxxx (ユーザID; 危険ですがテストなので)        /home/xxxxxxx/hello (サーバプログラムを full path で記述します。)
# End of inetd.conf

次のようにして inetd を再起動します。

# /etc/rc.d/init.d/inet restart

一般ユーザになった後 telnet でサーバーにアクセスします。

$ telnet localhost 60001
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
hello, world
Connection closed by foreign host.