Super demon wrapper
리눅스 슈퍼데몬 래퍼 펄스크립트. 슈퍼데몬으로 돌려야만하는 프로세스 디버깅할때 용이함.
포트번호만 지정해주면됨 (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;