Crap

Super demon wrapper

daehee87 2013. 10. 31. 18:17

리눅스 슈퍼데몬 래퍼 펄스크립트. 슈퍼데몬으로 돌려야만하는 프로세스 디버깅할때 용이함.

포트번호만 지정해주면됨 (33333)


root@ubuntu:/var/www/hdcon2# cat server.pl 


#!/usr/bin/perl


use Socket;


$port = 33333;


@exec = ("/var/www/hdcon2/ctf_time", "33333");


socket(SERVER, PF_INET, SOCK_STREAM, 6);


setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, pack("l", 1));


bind(SERVER, sockaddr_in($port, INADDR_ANY));


listen(SERVER,SOMAXCONN);


$SIG{"CHLD"} = "IGNORE";


while($addr = accept CLIENT, SERVER){


    $| = 1;


    ($port, $packed_ip) = sockaddr_in($addr); 


    $ip = inet_ntoa($packed_ip); 


    print "$ip: $port connected\n";


    fork || do {


        $| = 1;


        close SERVER;


        open STDIN,  "<&CLIENT";


        open STDOUT, ">&CLIENT";


        open STDERR, ">&CLIENT";


        close CLIENT;


        exec @exec;


        exit 0;


    };


    close CLIENT;


}


close SERVER;