fshalt: fix for cwfs.
This commit is contained in:
parent
f246b097ba
commit
f305ca8610
1 changed files with 10 additions and 43 deletions
|
@ -17,37 +17,13 @@ builtin cd /
|
||||||
|
|
||||||
setrtc
|
setrtc
|
||||||
|
|
||||||
# start venti flushing
|
|
||||||
venti/sync -h localhost >[2]/dev/null &
|
|
||||||
venti/sync >[2]/dev/null &
|
|
||||||
|
|
||||||
unmount /mnt/consoles >[2]/dev/null
|
unmount /mnt/consoles >[2]/dev/null
|
||||||
kill consolefs | rc # don't compete with /mnt/consoles
|
kill consolefs | rc # don't compete with /mnt/consoles
|
||||||
sleep 1
|
sleep 1
|
||||||
|
|
||||||
f=`{ls /srv/fscons*>[2]/dev/null}
|
|
||||||
k=`{ls /srv/kfs*cmd >[2]/dev/null|sort -r}
|
k=`{ls /srv/kfs*cmd >[2]/dev/null|sort -r}
|
||||||
c=`{ls /srv/cwfs*cmd >[2]/dev/null}
|
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){
|
for (i in $k){
|
||||||
echo -n $i...
|
echo -n $i...
|
||||||
switch($i){
|
switch($i){
|
||||||
|
@ -59,24 +35,19 @@ for (i in $k){
|
||||||
sleep 2
|
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)
|
# halting (binaries we run can't be on the fs we're halting)
|
||||||
ramfs
|
ramfs
|
||||||
builtin cd /tmp
|
builtin cd /tmp
|
||||||
cp /bin/dial/expect /tmp
|
cp /bin/dial/expect /tmp
|
||||||
cp /bin/echo /tmp
|
|
||||||
cp /bin/disk/kfscmd /tmp
|
cp /bin/disk/kfscmd /tmp
|
||||||
cp /bin/rc /tmp
|
cp /bin/echo /tmp
|
||||||
cp /bin/sed /tmp
|
|
||||||
cp /bin/ns /tmp
|
|
||||||
cp /bin/iostats /tmp
|
cp /bin/iostats /tmp
|
||||||
mkdir /tmp/lib
|
mkdir /tmp/lib
|
||||||
cp /rc/lib/rcmain /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 /rc
|
||||||
bind /tmp /bin
|
bind /tmp /bin
|
||||||
|
|
||||||
|
@ -85,15 +56,6 @@ bind /tmp /bin
|
||||||
fn x {
|
fn x {
|
||||||
echo
|
echo
|
||||||
echo -n halting...
|
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){
|
for (i in $k){
|
||||||
echo -n $i...
|
echo -n $i...
|
||||||
switch($i){
|
switch($i){
|
||||||
|
@ -103,6 +65,11 @@ fn x {
|
||||||
kfscmd -n `{echo $i | sed -n 's%/srv/kfs.(.*).cmd%\1%p'} halt
|
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
|
||||||
echo done halting
|
echo done halting
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue