added scram(8)
This commit is contained in:
parent
7aee021b13
commit
27dc8032ab
3 changed files with 36 additions and 3 deletions
|
@ -48,6 +48,7 @@ cp /bin/ns /tmp
|
|||
cp /bin/rc /tmp
|
||||
cp /bin/sed /tmp
|
||||
cp /bin/sleep /tmp
|
||||
cp /bin/scram /tmp
|
||||
bind /tmp /rc
|
||||
bind /tmp /bin
|
||||
|
||||
|
@ -77,6 +78,7 @@ fn x {
|
|||
echo rebooting...
|
||||
echo reboot >'#c/reboot'
|
||||
}
|
||||
if not scram
|
||||
}
|
||||
|
||||
x
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.TH FSHALT 8
|
||||
.SH NAME
|
||||
fshalt, reboot \- halt any local file systems and optionally reboot the system
|
||||
fshalt, scram, reboot \- halt any local file systems and optionally shut down or reboot the system
|
||||
.SH SYNOPSIS
|
||||
.B fshalt
|
||||
[
|
||||
|
@ -8,6 +8,8 @@ fshalt, reboot \- halt any local file systems and optionally reboot the system
|
|||
]
|
||||
.br
|
||||
.B reboot
|
||||
.br
|
||||
.B scram
|
||||
.SH DESCRIPTION
|
||||
.I Fshalt
|
||||
syncs all local
|
||||
|
@ -25,6 +27,9 @@ If given
|
|||
.BR -r ,
|
||||
.I fshalt
|
||||
will then reboot the machine.
|
||||
Else it will invoke
|
||||
.I scram
|
||||
to shut down the machine.
|
||||
The halting and rebooting is done by copying all necessary
|
||||
commands into a
|
||||
.IR ramfs (4)
|
||||
|
@ -35,6 +40,9 @@ local file systems.
|
|||
.PP
|
||||
.I Reboot
|
||||
restarts the machine it is invoked on.
|
||||
.PP
|
||||
.I Scram
|
||||
shuts down the machine it is invoked on.
|
||||
.SH SOURCE
|
||||
.B /rc/bin/fshalt
|
||||
.br
|
||||
|
@ -43,6 +51,9 @@ restarts the machine it is invoked on.
|
|||
.IR cons (3),
|
||||
.IR reboot (8)
|
||||
.SH BUGS
|
||||
On standalone machines, it will be impossible to do anything
|
||||
On standalone machines, it will be impossible to do anything if scram fails
|
||||
after invoking bare
|
||||
.LR fshalt .
|
||||
.IR fshalt .
|
||||
|
||||
.I Scram
|
||||
is limited to the PC and requires APM.
|
||||
|
|
20
sys/src/cmd/scram.c
Normal file
20
sys/src/cmd/scram.c
Normal file
|
@ -0,0 +1,20 @@
|
|||
#include <u.h>
|
||||
#include </386/include/ureg.h>
|
||||
typedef struct Ureg Ureg;
|
||||
#include <libc.h>
|
||||
|
||||
void
|
||||
main()
|
||||
{
|
||||
Ureg ureg;
|
||||
int fd;
|
||||
|
||||
fd = open("/dev/apm", OWRITE);
|
||||
if(fd < 0) sysfatal("%r");
|
||||
memset(&ureg, 0, sizeof ureg);
|
||||
ureg.ax = 0x5307;
|
||||
ureg.bx = 0x0001;
|
||||
ureg.cx = 0x0003;
|
||||
ureg.trap = 0x15;
|
||||
write(fd, &ureg, sizeof ureg);
|
||||
}
|
Loading…
Reference in a new issue