469,612 Members | 1,592 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,612 developers. It's quick & easy.

Using perl to check services

Hi,

I wrote this little script to check to see if our Lotus Notes servers are
running, and from the command line it works fine if I type perl
notescheck.pl

When I invoke the script from a web page I get an error:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable
to complete your request.

Please contact the server administrator, yo*@example.com and inform them of
the time the error occurred, and anything you might have done that may have
caused the error.

More information about this error may be available in the server error log.

Here is the script:

#!/usr/bin/perl -w
#use strict;
use IO::Socket;

$hostName = notesserver;
my $host = shift || $hostName;
my $port = shift || 25;
my $sock = new
IO::Socket::INET(PeerAddr=>$host,PeerPort=>$port,P roto=>'tcp');
if($sock)
{
print "<script>
alert(\"Server notesserver is running...\");
history.back();
</script>";
exit;
}
else
{
print "<script>
alert(\"Server notesserver appears to be down...\");
history.back();
</script>";
exit;
}
close $sock or die "close: $!";

When I run the script from the console (perl notescheck.pl) I get the
following:

<script>
alert("Server RSLNM02 is running...");
history.back();
</script>[root@rts cgi-bin]#
....which tells me the script is running fine.

Heres the code from the web page:

<form action="/cgi-bin/notescheck.pl" method="post">
<input type="submit">

Can anyone tell me why this doesn't work?

Thanks,
Jason


Jul 19 '05 #1
3 7660
In article <qV*********************@news20.bellglobal.com>, Jason Miles
<ry*****@bellnexxia.net> wrote:
Hi,

I wrote this little script to check to see if our Lotus Notes servers are
running, and from the command line it works fine if I type perl
notescheck.pl

When I invoke the script from a web page I get an error:
[server error snipped]

Here is the script:

#!/usr/bin/perl -w
#use strict;
use IO::Socket;

$hostName = notesserver; ^^^^^^^^^^^ bareword?
my $host = shift || $hostName;
my $port = shift || 25;
my $sock = new
IO::Socket::INET(PeerAddr=>$host,PeerPort=>$port,P roto=>'tcp');
if($sock)
{
print "<script>
alert(\"Server notesserver is running...\");
history.back();
</script>";
exit;
}
else
{
print "<script>
alert(\"Server notesserver appears to be down...\");
history.back();
</script>";
exit;
}
close $sock or die "close: $!";


Is this the code you ran? It contains a bare-word 'noteserver', which
should probably be a variable or a string, but you do not show how it
gets the value 'RSLNM02'. You would have noticed this if you had left
the 'use strict;' line uncommented. Please do not ask people to find
problems that the compiler can easily find.

What is the error message in the server log? (You did look for the
error message in the server log, didn't you?)

Try

perldoc -q 500

for more help, particularly about the proper newsgroup for posting
about web server questions (your Perl program looks OK, except for the
noted error).

Finally, this newsgroup is defunct. Try comp.lang.perl.misc in the
future for Perl questions.
Jul 19 '05 #2
On Tue, 06 Apr 2004 13:27:26 -0700, Jim Gibson wrote:
In article <qV*********************@news20.bellglobal.com>, Jason Miles
<ry*****@bellnexxia.net> wrote:
Hi,

I wrote this little script to check to see if our Lotus Notes servers
are running, and from the command line it works fine if I type perl
notescheck.pl

When I invoke the script from a web page I get an error:


[server error snipped]

Here is the script:

#!/usr/bin/perl -w
#use strict;
use IO::Socket;

$hostName = notesserver;

^^^^^^^^^^^ bareword?
my $host = shift || $hostName;
my $port = shift || 25;
my $sock = new
IO::Socket::INET(PeerAddr=>$host,PeerPort=>$port,P roto=>'tcp');
if($sock)
{
print "<script>
alert(\"Server notesserver is running...\");
history.back();
</script>";
exit;
}
else
{
print "<script>
alert(\"Server notesserver appears to be down...\");
history.back();
</script>";
exit;
}
close $sock or die "close: $!";

Is this the code you ran? It contains a bare-word 'noteserver', which
should probably be a variable or a string, but you do not show how it
gets the value 'RSLNM02'. You would have noticed this if you had left
the 'use strict;' line uncommented. Please do not ask people to find
problems that the compiler can easily find.

What is the error message in the server log? (You did look for the error
message in the server log, didn't you?)

Try

perldoc -q 500

for more help, particularly about the proper newsgroup for posting about
web server questions (your Perl program looks OK, except for the noted
error).

Finally, this newsgroup is defunct. Try comp.lang.perl.misc in the
future for Perl questions.


This may be a stupid question, other then the bare word, isn't this script
also missing the content type, so the output is interpreted by the browser
as a a web page?
Jul 19 '05 #3
Yes, that's exactly what the problem was. Thanks for your replies...

"James T" <turajb@_NOSPAM_hoflink.com> wrote in message
news:pan.2004.04.07.03.28.06.765573@_NOSPAM_hoflin k.com...
On Tue, 06 Apr 2004 13:27:26 -0700, Jim Gibson wrote:
In article <qV*********************@news20.bellglobal.com>, Jason Miles
<ry*****@bellnexxia.net> wrote:
Hi,

I wrote this little script to check to see if our Lotus Notes servers
are running, and from the command line it works fine if I type perl
notescheck.pl

When I invoke the script from a web page I get an error:


[server error snipped]

Here is the script:

#!/usr/bin/perl -w
#use strict;
use IO::Socket;

$hostName = notesserver;

^^^^^^^^^^^ bareword?
my $host = shift || $hostName;
my $port = shift || 25;
my $sock = new
IO::Socket::INET(PeerAddr=>$host,PeerPort=>$port,P roto=>'tcp');
if($sock)
{
print "<script>
alert(\"Server notesserver is running...\");
history.back();
</script>";
exit;
}
else
{
print "<script>
alert(\"Server notesserver appears to be down...\");
history.back();
</script>";
exit;
}
close $sock or die "close: $!";

Is this the code you ran? It contains a bare-word 'noteserver', which
should probably be a variable or a string, but you do not show how it
gets the value 'RSLNM02'. You would have noticed this if you had left
the 'use strict;' line uncommented. Please do not ask people to find
problems that the compiler can easily find.

What is the error message in the server log? (You did look for the error
message in the server log, didn't you?)

Try

perldoc -q 500

for more help, particularly about the proper newsgroup for posting about
web server questions (your Perl program looks OK, except for the noted
error).

Finally, this newsgroup is defunct. Try comp.lang.perl.misc in the
future for Perl questions.


This may be a stupid question, other then the bare word, isn't this script
also missing the content type, so the output is interpreted by the browser
as a a web page?

Jul 19 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by bezeee | last post: by
121 posts views Thread by typingcat | last post: by
reply views Thread by Peter Conrey | last post: by
2 posts views Thread by kelly | last post: by
3 posts views Thread by Jay-nospam | last post: by
1 post views Thread by pchaw | last post: by
reply views Thread by gheharukoh7 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.