471,872 Members | 1,398 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,872 software developers and data experts.

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 7744
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
aboka
reply views Thread by aboka | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.