diff options
author | stanley lieber <stanley.lieber@gmail.com> | 2011-04-21 03:10:08 +0000 |
---|---|---|
committer | stanley lieber <stanley.lieber@gmail.com> | 2011-04-21 03:10:08 +0000 |
commit | f305ca8610642c7048beb0596d7be79313d7bef4 (patch) | |
tree | 6897aa994077fca803cad0d51eed6e9e8819d780 /rc/bin/fshalt | |
parent | f246b097baec9ba853953073de3b47cdbe788063 (diff) |
fshalt: fix for cwfs.
Diffstat (limited to 'rc/bin/fshalt')
-rwxr-xr-x | rc/bin/fshalt | 53 |
1 files changed, 10 insertions, 43 deletions
diff --git a/rc/bin/fshalt b/rc/bin/fshalt index 42434da61..681311f17 100755 --- a/rc/bin/fshalt +++ b/rc/bin/fshalt @@ -17,37 +17,13 @@ builtin cd / setrtc -# start venti flushing -venti/sync -h localhost >[2]/dev/null & -venti/sync >[2]/dev/null & - unmount /mnt/consoles >[2]/dev/null kill consolefs | rc # don't compete with /mnt/consoles sleep 1 -f=`{ls /srv/fscons*>[2]/dev/null} k=`{ls /srv/kfs*cmd >[2]/dev/null|sort -r} c=`{ls /srv/cwfs*cmd >[2]/dev/null} -echo -n syncing... -for(i in $f) @ { - echo -n $i... - { - echo - dial/drain & - sleep 2 - echo fsys all sync - if(! dial/expect -t 120 ': ') - echo -n 'not synced...' > /dev/cons - } < $i >> $i -} - -# flush the last bit of possible fossil traffic -echo -n venti... -venti/sync -h localhost >[2]/dev/null & -venti/sync >[2]/dev/null & -sleep 5 - for (i in $k){ echo -n $i... switch($i){ @@ -59,24 +35,19 @@ for (i in $k){ sleep 2 } -for (i in $c){ - echo -n $i... - echo halt >>$i - sleep 2 -} - # halting (binaries we run can't be on the fs we're halting) ramfs builtin cd /tmp cp /bin/dial/expect /tmp -cp /bin/echo /tmp cp /bin/disk/kfscmd /tmp -cp /bin/rc /tmp -cp /bin/sed /tmp -cp /bin/ns /tmp +cp /bin/echo /tmp cp /bin/iostats /tmp mkdir /tmp/lib cp /rc/lib/rcmain /tmp/lib +cp /bin/ns /tmp +cp /bin/rc /tmp +cp /bin/sed /tmp +cp /bin/sleep /tmp bind /tmp /rc bind /tmp /bin @@ -85,15 +56,6 @@ bind /tmp /bin fn x { echo echo -n halting... - for(i in $f) @ { - echo -n $i... - { - echo fsys all halt - if(! expect -t 60 ': ') - echo -n 'not halted...' > /dev/cons - } < $i >> $i - } - for (i in $k){ echo -n $i... switch($i){ @@ -103,6 +65,11 @@ fn x { 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 + } echo echo done halting |