#!/usr/local/bin/perl -w
#-*-perl-*-
#
#
#
use strict;
use Win32;
use Getopt::Std;
use vars qw ( %Option );
my ($VERSION) = '$Revision: 1.0 $' =~ /([.\d]+)/;
my $warnings = 0;
# Print a usuage message on a unknown option.
$SIG {__WARN__} = sub {
if (substr ($_ [0], 0, 14) eq "Unknown option") {die "Usage"};
require File::Basename;
$0 = File::Basename::basename ($0);
$warnings = 1;
warn "$0: @_";
};
$SIG {__DIE__} = sub {
require File::Basename;
$0 = File::Basename::basename ($0);
if (substr ($_ [0], 0, 5) eq "Usage") {
die <<EOF;
$0 (NT Perl bin utils) $VERSION
$0 [ -a | -q ] [ -h ]
EOF
}
die "$0: @_";
};
# Get the options.
getopts (
'haq',
\%Option
); # -h, -q & -a take no option
die "Usage" if ( $Option{'h'} || scalar keys %Option > 1 );
my $Server = "";
if ( $Option{'a'} ) {
Win32::AbortSystemShutdown (
$Server
)
or die "$^E\n";
exit;
}
my $Message = "Reboot initiated by " . getlogin . "\n";
my $Timeout = $Option{'q'} || "60";
my $ForceClose = $Option{'q'} || "0";
my $Reboot = "6";
Win32::InitiateSystemShutdown (
$Server,
$Message,
$Timeout,
$ForceClose,
$Reboot - 5
)
or die "$^E\n";
=pod
=head1 NAME
B<reboot> -- restart the operating system
=head1 SYNOPSIS
B<reboot> [ -a ]
B<reboot> [ -q ]
=head1 DESCRIPTION
B<reboot> restarts the hardware and operating system.
Although B<reboot> can be run by the super-user at any time, B<shutdow
+n> is normally used first to warn all users logged in of the impendin
+g loss of service. See B<shutdown> for details.
=head2 OPTIONS
=over 4
=item -a
Abort the B<reboot> command.
=item -q
Quick. Reboot quickly without notifying logged-in users or saving data
+.
=item -h
Display syntax.
=back
=head1 EXAMPLES
In the following example, B<reboot> is being executed on host foo in 6
+0 seconds.
example# reboot
In the example below, a quick reboot is requested immediately.
example# reboot -q
The following example aborts the above.
example# reboot -a
=head1 ENVIRONMENT
The working of B<reboot> is not influenced by any environment variable
+s.
=head1 BUGS
B<reboot> suffers from no known bugs at this time.
=head1 STANDARDS
It does not make sense to talk about standards in a B<reboot> manual p
+age.
=head1 REVISION HISTORY
reboot
Revision 1.0 2000/06/22 08:35:57 idnopheq
Initial revision
=head1 AUTHOR
The Perl implementation of B<reboot> was written by Dexter Coffin, I<i
+dnopheq@home.com>.
=head1 COPYRIGHT and LICENSE
This program is copyright by Dexter Coffin 2000.
This program is free and open software. You may use, copy, modify, dis
+tribute,
and sell this program (and any modified variants) in any way you wish,
provided you do not restrict others from doing the same.
=head1 SEE ALSO
=for html
<a href="shutdown.html">shutdown</a><p>
=head1 NEXT TOPIC
=cut
|