X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=rc%2Fbin%2Ffshalt;h=2fed2465af5ce799f08c8b2dd584e82aace99817;hb=dff78ef64a0f064e74108394b76a92889f8a2d54;hp=c6bf8c8544a070423536569ff2bc068b9431904f;hpb=58693ad81c09243227828b80c8f51d43d524d005;p=plan9front.git diff --git a/rc/bin/fshalt b/rc/bin/fshalt index c6bf8c854..2fed2465a 100755 --- a/rc/bin/fshalt +++ b/rc/bin/fshalt @@ -1,7 +1,7 @@ #!/bin/rc # fshalt [-r] - sync (flush) and, if possible, halt all file servers # and optionally reboot -rfork e +rfork en reboot=no scram=no switch ($#*) { @@ -22,33 +22,22 @@ unmount /mnt/consoles >[2]/dev/null kill consolefs | rc # don't compete with /mnt/consoles sleep 1 -k=`{ls /srv/kfs*cmd >[2]/dev/null|sort -r} c=`{ls /srv/cwfs*cmd >[2]/dev/null} - -for (i in $k){ - echo -n $i... - switch($i){ - case /srv/kfs.cmd - disk/kfscmd sync - case * - disk/kfscmd -n `{echo $i | sed -n 's%/srv/kfs.(.*).cmd%\1%p'} sync - } - sleep 2 -} +h=`{ls /srv/hjfs*cmd >[2]/dev/null} # for scram, don't scram other systems bind -b '#P' /dev -if (test -e '#P'/apm) - if (! ~ $reboot yes) +if(! ~ $reboot yes){ + if (test -e '#P'/apm) scram=yes + if (test -e '#P'/acpitbls -a -e '#P'/iow) + scram=yes +} # halting (binaries we run can't be on the fs we're halting) ramfs builtin cd /tmp -cp /bin/dial/expect /tmp -cp /bin/disk/kfscmd /tmp cp /bin/echo /tmp -cp /bin/iostats /tmp mkdir /tmp/lib cp /rc/lib/rcmain /tmp/lib cp /bin/ns /tmp @@ -64,20 +53,16 @@ bind /tmp /bin fn x { echo echo -n halting... - for (i in $k){ - echo -n $i... - switch($i){ - case /srv/kfs.cmd - kfscmd halt - case * - kfscmd -n `{echo $i | sed -n 's%/srv/kfs.(.*).cmd%\1%p'} halt - } - } for (i in $c){ echo -n $i... echo halt >>$i sleep 2 } + for(i in $h){ + echo -n $i + echo halt >>$i + sleep 2 + } echo echo done halting @@ -85,8 +70,10 @@ fn x { echo rebooting... echo reboot >'#c/reboot' } - if (~ $scram yes) + if (~ $scram yes){ scram + echo 'It''s now safe to turn off your computer' + } } x