From 248c089a5cd5c0fd7b8394f6ced43a56060368ff Mon Sep 17 00:00:00 2001 From: Matthew Wilson Date: Wed, 3 May 2006 22:45:53 +0000 Subject: [PATCH] some usability changes --- sbin/spectre.pl | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/sbin/spectre.pl b/sbin/spectre.pl index ff8297367..03898dc62 100644 --- a/sbin/spectre.pl +++ b/sbin/spectre.pl @@ -86,21 +86,30 @@ if ($shutdown) { die $POE::Component::IKC::ClientLite::error unless defined $result; undef $remote; } elsif ($ping) { + my $res = ping(); + print "Spectre is Alive!\n" unless $res; + print "Spectre is not responding.\n".$res if $res; +} elsif ($run) { + Spectre::Admin->new($config, $debug); +} elsif ($daemon) { + my $res = ping(); + print "Spectre is already running.\n" unless $res; + exit unless $res; + fork and exit(sleep(1) and print((ping())?"Spectre failed to start!\n":"Spectre started successfully!\n")); + Spectre::Admin->new($config, $debug); +} + +sub ping { my $remote = create_ikc_client( port=>$config->get("port"), ip=>'127.0.0.1', name=>rand(100000), timeout=>10 ); - die $POE::Component::IKC::ClientLite::error unless $remote; + return $POE::Component::IKC::ClientLite::error unless $remote; my $result = $remote->post_respond('admin/ping'); - die $POE::Component::IKC::ClientLite::error unless defined $result; - print "Spectre is Alive!\n" if ($result eq "pong"); + return $POE::Component::IKC::ClientLite::error unless defined $result; undef $remote; -} elsif ($run) { - Spectre::Admin->new($config, $debug); -} elsif ($daemon) { - fork and exit; - Spectre::Admin->new($config, $debug); -} - + return 0 if ($result eq "pong"); + return 1; +} \ No newline at end of file