11 unless ((`netstat -nap --inet` || "") =~ m!PID/Program!) {
12 plan skip_all => "netstat output not how expected; skipping test.\n";
16 my $TEST_IP = '127.0.1.1';
21 my $dir = File::Temp::tempdir( CLEANUP => 1 );
22 my $ms = eval { create_mogstored($TEST_IP, $dir, "--daemonize") };
23 unless (ok($ms, "started daemonized mogstored")) {
24 # Must wait a moment on startup
25 select undef, undef, undef, 0.5;
27 my $exist = eval { exist_pid() };
28 warn "exist = $exist\n";
30 warn "killing existing test mogstored pid of $exist\n";
33 die "wasn't able to start up.";
37 my $real_pid = exist_pid();
39 warn "real_pid = $real_pid\n";
42 my $sock = try(5, 0.5, sub { IO::Socket::INET->new(PeerAddr => "$TEST_IP:7501",
44 ok($sock, "got mgmt connection") or die;
47 print $sock "shutdown\n";
50 vec($rin,fileno($sock),1) = 1;
52 my $n = select($rout=$rin,undef,undef,2);
53 is($n, 1, "mgmt port readable");
57 die "killed pid of $real_pid\n";
62 while ($tries++ < 10 && ($alive = kill(0, $real_pid))) {
63 select undef, undef, undef, 0.4;
68 # dies when not able to find
70 my $netstat = `netstat -nap --inet`;
73 unless ($netstat =~ m!${ip}:750[10].+LISTEN\s+(\d+)/!) {
74 die "Couldn't find pid of daemonized process.\n";
80 my ($tries, $delay, $code) = @_;
82 while ($try++ < $tries) {
85 select undef, undef, undef, $delay;