01 #!/usr/bin/perl -w 02 ############################# 03 # powerdown event handler 04 # Mike Schilli, 2007 05 ############################# 06 use strict; 07 use Sysadm::Install qw(:all); 08 use Log::Log4perl qw(:easy); 09 10 Log::Log4perl->easy_init({ 11 file => 12 ">>/tmp/powerdown.log", 13 level => $DEBUG 14 }); 15 16 my ($state, $softhard) = 17 @ARGV; 18 19 LOGDIE 20 "usage: $0 state SOFT|HARD" 21 if !$softhard 22 or $softhard !~ /SOFT|HARD/; 23 24 DEBUG 25 "Called $0 $state $softhard"; 26 27 if ($state eq "OK") { 28 DEBUG "Ignoring OK"; 29 exit 0; 30 } 31 32 if ($softhard eq "SOFT") { 33 DEBUG "Ignoring soft mode"; 34 exit 0; 35 } 36 37 # Shut PC off 38 INFO "Shutting down"; 39 tap("sudo", 40 "/usr/bin/poweroff");