I tried writing some code to powerdown our Solaris and SunOS machines using system("init","5"). It worked fine w/ Solaris, but (1) SunOS doesn't use init cmds, (2) there is not a way to power down SunOS from cmd line. So I had to get craftier. What I found, was that by using fork, I could spawn a child, issue and shutdown -h command and kill the child.

There are no deep revelations here, but is a handy snippet for other SAs stuck in the world SunOS.

bb

if ($OS =~ /5\.[678]/) { Shutdown("$Hostname", "/usr/sbin/init 5"); } elsif ($OS =~ /4\.1\./) { Shutdown("$Hostname", "/usr/etc/shutdown -h now"); sub Shutdown { my ($host, $cmd, $pid); ($host, $cmd) = @_; my (@entry, $newentry); print LOG "Alert: $IP is shutting down\n"; unless ($pid = fork) { unless (fork) { exec("$Rsh", "$host", "$cmd"); exit 0; } exit 0 } waitpid($pid,0); return; }