読者です 読者をやめる 読者になる 読者になる

perlでtcpをlistenするデーモン的なものを作ってみる

・・・といっても、下記ブログの内容を猿マネしただけです。
先人の知恵に感謝。

d.hatena.ne.jp


動かすperl

$ cat perl_echo.pl
#!/usr/bin/perl
$|=1;

use strict;

while (<>){
        print;
        exit 0 if (/^exit\s*$/i);
}

chmod +xしてから、起動。

その後、xinedをインストール。

yum install xinetd

設定用のファイルを作成。

vi /etc/xinetd.d/perl_echo

内容は以下とする。

$ cat perl_echo
service perl_echo
{
        disable         = no
        type            = UNLISTED
        wait            = no
        socket_type     = stream
        protocol        = tcp
        port            = 10000
        user            = nobody
        server          = /tmp/perl_echo.pl
}

ファイルの作成が終わったら、xinetdを起動。

service xinetd start

ポートがLISTENになってる事を確認。

$ netstat -an | grep 10000
tcp        0      0 :::10000                    :::*                        LISTEN

つないで動作確認してみる。

$ telnet localhost 10000
Trying ::1...
Connected to localhost.
Escape character is '^]'.
a
a
echo
echo
exit
exit
Connection closed by foreign host.