mirror of
https://github.com/GnoConsortium/gno.git
synced 2025-02-06 10:30:50 +00:00
initial checkin
This commit is contained in:
parent
75e4ffde40
commit
3f66072e30
11
sbin/init/Makefile
Normal file
11
sbin/init/Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 7/19/93
|
||||
|
||||
PROG= init
|
||||
MAN8= init.8
|
||||
DPADD= ${LIBUTIL}
|
||||
LDADD= -lutil -lcrypt
|
||||
BINMODE=500
|
||||
INSTALLFLAGS=-fschg
|
||||
CFLAGS+=-DDEBUGSHELL -DSECURE
|
||||
|
||||
.include <bsd.prog.mk>
|
112
sbin/init/NOTES
Normal file
112
sbin/init/NOTES
Normal file
@ -0,0 +1,112 @@
|
||||
POSIX and init:
|
||||
--------------
|
||||
|
||||
POSIX.1 does not define 'init' but it mentions it in a few places.
|
||||
|
||||
B.2.2.2, p205 line 873:
|
||||
|
||||
This is part of the extensive 'job control' glossary entry.
|
||||
This specific reference says that 'init' must by default provide
|
||||
protection from job control signals to jobs it starts --
|
||||
it sets SIGTSTP, SIGTTIN and SIGTTOU to SIG_IGN.
|
||||
|
||||
B.2.2.2, p206 line 889:
|
||||
|
||||
Here is a reference to 'vhangup'. It says, 'POSIX.1 does
|
||||
not specify how controlling terminal access is affected by
|
||||
a user logging out (that is, by a controlling process
|
||||
terminating).' vhangup() is recognized as one way to handle
|
||||
the problem. I'm not clear what happens in Reno; I have
|
||||
the impression that when the controlling process terminates,
|
||||
references to the controlling terminal are converted to
|
||||
references to a 'dead' vnode. I don't know whether vhangup()
|
||||
is required.
|
||||
|
||||
B.2.2.2, p206 line 921:
|
||||
|
||||
Orphaned process groups bear indirectly on this issue. A
|
||||
session leader's process group is considered to be orphaned;
|
||||
that is, it's immune to job control signals from the terminal.
|
||||
|
||||
B.2.2.2, p233 line 2055:
|
||||
|
||||
'Historically, the implementation-dependent process that
|
||||
inherits children whose parents have terminated without
|
||||
waiting on them is called "init" and has a process ID of 1.'
|
||||
|
||||
It goes on to note that it used to be the case that 'init'
|
||||
was responsible for sending SIGHUP to the foreground process
|
||||
group of a tty whose controlling process has exited, using
|
||||
vhangup(). It is now the responsibility of the kernel to
|
||||
do this when the controlling process calls _exit(). The
|
||||
kernel is also responsible for sending SIGCONT to stopped
|
||||
process groups that become orphaned. This is like old BSD
|
||||
but entire process groups are signaled instead of individual
|
||||
processes.
|
||||
|
||||
In general it appears that the kernel now automatically
|
||||
takes care of orphans, relieving 'init' of any responsibility.
|
||||
Specifics are listed on the _exit() page (p50).
|
||||
|
||||
On setsid():
|
||||
-----------
|
||||
|
||||
It appears that neither getty nor login call setsid(), so init must
|
||||
do this -- seems reasonable. B.4.3.2 p 248 implies that this is the
|
||||
way that 'init' should work; it says that setsid() should be called
|
||||
after forking.
|
||||
|
||||
Process group leaders cannot call setsid() -- another reason to
|
||||
fork! Of course setsid() causes the current process to become a
|
||||
process group leader, so we can only call setsid() once. Note that
|
||||
the controlling terminal acquires the session leader's process
|
||||
group when opened.
|
||||
|
||||
Controlling terminals:
|
||||
---------------------
|
||||
|
||||
B.7.1.1.3 p276: 'POSIX.1 does not specify a mechanism by which to
|
||||
allocate a controlling terminal. This is normally done by a system
|
||||
utility (such as 'getty') and is considered ... outside the scope
|
||||
of POSIX.1.' It goes on to say that historically the first open()
|
||||
of a tty in a session sets the controlling terminal. P130 has the
|
||||
full details; nothing particularly surprising.
|
||||
|
||||
The glossary p12 describes a 'controlling process' as the first
|
||||
process in a session that acquires a controlling terminal. Access
|
||||
to the terminal from the session is revoked if the controlling
|
||||
process exits (see p50, in the discussion of process termination).
|
||||
|
||||
Design notes:
|
||||
------------
|
||||
|
||||
your generic finite state machine
|
||||
we are fascist about which signals we elect to receive,
|
||||
even signals purportedly generated by hardware
|
||||
handle fatal errors gracefully if possible (we reboot if we goof!!)
|
||||
if we get a segmentation fault etc., print a message on the console
|
||||
and spin for a while before rebooting
|
||||
(this at least decreases the amount of paper consumed :-)
|
||||
apply hysteresis to rapidly exiting gettys
|
||||
check wait status of children we reap
|
||||
don't wait for stopped children
|
||||
don't use SIGCHILD, it's too expensive
|
||||
but it may close windows and avoid races, sigh
|
||||
look for EINTR in case we need to change state
|
||||
init is responsible for utmp and wtmp maintenance (ick)
|
||||
maybe now we can consider replacements? maintain them in parallel
|
||||
init only removes utmp and closes out wtmp entries...
|
||||
|
||||
necessary states and state transitions (gleaned from the man page):
|
||||
1: single user shell (with password checking?); on exit, go to 2
|
||||
2: rc script: on exit 0, go to 3; on exit N (error), go to 1
|
||||
3: read ttys file: on completion, go to 4
|
||||
4: multi-user operation: on SIGTERM, go to 7; on SIGHUP, go to 5;
|
||||
on SIGTSTP, go to 6
|
||||
5: clean up mode (re-read ttys file, killing off controlling processes
|
||||
on lines that are now 'off', starting them on lines newly 'on')
|
||||
on completion, go to 4
|
||||
6: boring mode (no new sessions); signals as in 4
|
||||
7: death: send SIGHUP to all controlling processes, reap for 30 seconds,
|
||||
then go to 1 (warn if not all processes died, i.e. wait blocks)
|
||||
Given the -s flag, we start at state 1; otherwise state 2
|
296
sbin/init/init.8
Normal file
296
sbin/init/init.8
Normal file
@ -0,0 +1,296 @@
|
||||
.\" Copyright (c) 1980, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" This code is derived from software contributed to Berkeley by
|
||||
.\" Donn Seeley at Berkeley Software Design, Inc.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)init.8 8.3 (Berkeley) 4/18/94
|
||||
.\"
|
||||
.\" $Id: init.8,v 1.1 1997/10/04 05:23:51 gdr Exp $
|
||||
.\"
|
||||
.TH INIT 8 "4 October 1997" GNO "System Administration"
|
||||
.SH NAME
|
||||
.BR init
|
||||
\- process control initialization
|
||||
.SH SYNOPSIS
|
||||
.BR init
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.BR init
|
||||
program
|
||||
is the last stage of the boot process.
|
||||
It normally runs the automatic reboot sequence as described in
|
||||
.BR reboot (8),
|
||||
and if this succeeds, begins multi-user operation.
|
||||
If the reboot scripts fail,
|
||||
.BR init
|
||||
commences single user operation by giving
|
||||
the super-user a shell on the console.
|
||||
The
|
||||
.BR init
|
||||
program may be passed parameters
|
||||
from the boot program to
|
||||
prevent the system from going multi-user and to instead execute
|
||||
a single user shell without starting the normal daemons.
|
||||
The system is then quiescent for maintenance work and may
|
||||
later be made to go to multi-user by exiting the
|
||||
single-user shell (with ^D).
|
||||
This
|
||||
causes
|
||||
.BR init
|
||||
to run the
|
||||
.BR /etc/rc
|
||||
start up command file in fastboot mode (skipping disk checks).
|
||||
.LP
|
||||
If the
|
||||
.BR console
|
||||
entry in the
|
||||
.BR ttys (5)
|
||||
file is marked ``insecure'',
|
||||
then
|
||||
.BR init
|
||||
will require that the superuser password be
|
||||
entered before the system will start a single-user shell.
|
||||
The password check is skipped if the
|
||||
.BR console
|
||||
is marked as ``secure''.
|
||||
.LP
|
||||
The kernel runs with four different levels of security.
|
||||
Any superuser process can raise the security level, but only
|
||||
.BR init
|
||||
can lower it.
|
||||
Security levels are defined as follows:
|
||||
.RS
|
||||
.IP \fB-1\fR
|
||||
Permanently insecure mode \- always run system in level 0 mode.
|
||||
.IP \fB0\fR
|
||||
Insecure mode \- immutable and append-only flags may be turned off.
|
||||
All devices may be read or written subject to their permissions.
|
||||
.IP \fB1\fR
|
||||
Secure mode \- immutable and append-only flags may not be changed;
|
||||
disks for mounted filesystems,
|
||||
.BR /dev/mem ,
|
||||
and
|
||||
.BR /dev/kmem
|
||||
are read-only.
|
||||
.IP \fB2\fR
|
||||
Highly secure mode \- same as secure mode, plus disks are always
|
||||
read-only whether mounted or not.
|
||||
This level precludes tampering with filesystems by unmounting them,
|
||||
but also inhibits running
|
||||
.BR newfs (8)
|
||||
while the system is multi-user.
|
||||
.RE
|
||||
.LP
|
||||
Normally, the system runs in level 0 mode while single user
|
||||
and in level 1 mode while multiuser.
|
||||
If the level 2 mode is desired while running multiuser,
|
||||
it can be set in the startup script
|
||||
.BR /etc/rc
|
||||
using
|
||||
.BR sysctl (8).
|
||||
If it is desired to run the system in level 0 mode while multiuser,
|
||||
the administrator must build a kernel with the variable
|
||||
.BR securelevel
|
||||
defined in the file
|
||||
.BR /sys/compile/MACHINE/param.c
|
||||
and initialize it to -1.
|
||||
.LP
|
||||
In multi-user operation,
|
||||
.BR init
|
||||
maintains
|
||||
processes for the terminal ports found in the file
|
||||
.BR ttys (5).
|
||||
.BR Init
|
||||
reads this file, and executes the command found in the second field.
|
||||
This command is usually
|
||||
.BR getty (8);
|
||||
.BR getty
|
||||
opens and initializes the tty line
|
||||
and
|
||||
executes the
|
||||
.BR login
|
||||
program.
|
||||
The
|
||||
.BR login
|
||||
program, when a valid user logs in,
|
||||
executes a shell for that user. When this shell
|
||||
dies, either because the user logged out
|
||||
or an abnormal termination occurred (a signal),
|
||||
the
|
||||
.BR init
|
||||
program wakes up, deletes the user
|
||||
from the
|
||||
.BR utmp (5)
|
||||
file of current users and records the logout in the
|
||||
.BR wtmp
|
||||
file.
|
||||
The cycle is
|
||||
then restarted by
|
||||
.BR init
|
||||
executing a new
|
||||
.BR getty
|
||||
for the line.
|
||||
.LP
|
||||
Line status (on, off, secure, getty, or window information)
|
||||
may be changed in the
|
||||
.BR ttys
|
||||
file without a reboot by sending the signal
|
||||
.BR SIGHUP
|
||||
to
|
||||
.BR init
|
||||
with the command
|
||||
.B "kill -HUP 1" .
|
||||
On receipt of this signal,
|
||||
.BR init
|
||||
re-reads the
|
||||
.BR ttys
|
||||
file.
|
||||
When a line is turned off in
|
||||
.BR ttys ,
|
||||
.BR init
|
||||
will send a SIGHUP signal to the controlling process
|
||||
for the session associated with the line.
|
||||
For any lines that were previously turned off in the
|
||||
.BR ttys
|
||||
file and are now on,
|
||||
.BR init
|
||||
executes a new
|
||||
.BR getty
|
||||
to enable a new login.
|
||||
If the getty or window field for a line is changed,
|
||||
the change takes effect at the end of the current
|
||||
login session (e.g., the next time
|
||||
.BR init
|
||||
starts a process on the line).
|
||||
If a line is commented out or deleted from
|
||||
.BR ttys ,
|
||||
.BR init
|
||||
will not do anything at all to that line.
|
||||
However, it will complain that the relationship between lines
|
||||
in the
|
||||
.BR ttys
|
||||
file and records in the
|
||||
.BR utmp
|
||||
file is out of sync,
|
||||
so this practice is not recommended.
|
||||
.LP
|
||||
.BR Init
|
||||
will terminate multi-user operations and resume single-user mode
|
||||
if sent a terminate TERM
|
||||
signal, for example,
|
||||
.BR "kill \-TERM 1" .
|
||||
If there are processes outstanding that are deadlocked (because of
|
||||
hardware or software failure),
|
||||
.BR init
|
||||
will not wait for them all to die (which might take forever), but
|
||||
will time out after 30 seconds and print a warning message.
|
||||
.LP
|
||||
.BR Init
|
||||
will cease creating new
|
||||
.BR getty Ns's
|
||||
and allow the system to slowly die away, if it is sent a terminal stop
|
||||
TSTP signal, i.e.
|
||||
.BR "kill \-TSTP 1" .
|
||||
A later hangup will resume full
|
||||
multi-user operations, or a terminate will start a single user shell.
|
||||
This hook is used by
|
||||
.BR reboot (8)
|
||||
and
|
||||
.BR halt (8).
|
||||
.LP
|
||||
.BR Init
|
||||
will terminate all possible processes (again, it will not wait
|
||||
for deadlocked processes) and reboot the machine if sent the interrupt
|
||||
INT signal, i.e.
|
||||
.BR "kill \-INT 1" .
|
||||
This is useful for shutting the machine down cleanly from inside the kernel
|
||||
or from X when the machines appears to be hung.
|
||||
.LP
|
||||
The role of
|
||||
.BR init
|
||||
is so critical that if it dies, the system will reboot itself
|
||||
automatically.
|
||||
If, at bootstrap time, the
|
||||
.BR init
|
||||
process cannot be located, the system will panic with the message
|
||||
``panic: "init died (signal %d, exit %d)''.
|
||||
.SH DIAGNOSTICS
|
||||
.RS
|
||||
.IP "\fIgetty repeating too quickly on port %s, sleeping\fR"
|
||||
A process being started to service a line is exiting quickly
|
||||
each time it is started.
|
||||
This is often caused by a ringing or noisy terminal line.
|
||||
.IR "Init will sleep for 10 seconds" ,
|
||||
.IR "then continue trying to start the process" .
|
||||
.LP
|
||||
.IP "\fIsome processes would not die; ps axl advised.\fR"
|
||||
A process
|
||||
is hung and could not be killed when the system was shutting down.
|
||||
This condition is usually caused by a process
|
||||
that is stuck in a device driver because of
|
||||
a persistent device error condition.
|
||||
.RE
|
||||
.SH FILES
|
||||
.RS
|
||||
.IP \fB/dev/console\fR
|
||||
System console device.
|
||||
.IP \fB/dev/tty*\fR
|
||||
Terminal ports found in
|
||||
.BR ttys .
|
||||
.IP \fB/var/run/utmp\fR
|
||||
Record of Current users on the system.
|
||||
.IP \fB/var/log/wtmp\fR
|
||||
Record of all logins and logouts.
|
||||
.IP \fB/etc/ttys\fR
|
||||
The terminal initialization information file.
|
||||
.IP \fB/etc/rc\fR
|
||||
System startup commands.
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.BR login (1),
|
||||
.BR kill (1),
|
||||
.BR sh (1),
|
||||
.BR ttys (5),
|
||||
.BR crash (8),
|
||||
.BR getty (8),
|
||||
.BR rc (8),
|
||||
.BR reboot (8),
|
||||
.BR halt (8),
|
||||
.BR shutdown (8)
|
||||
.SH HISTORY
|
||||
A
|
||||
.BR init
|
||||
command appeared in Version 6 AT&T UNIX.
|
||||
.SH BUGS
|
||||
Systems without
|
||||
.BR sysctl
|
||||
behave as though they have security level \-1.
|
1422
sbin/init/init.c
Normal file
1422
sbin/init/init.c
Normal file
File diff suppressed because it is too large
Load Diff
42
sbin/init/pathnames.h
Normal file
42
sbin/init/pathnames.h
Normal file
@ -0,0 +1,42 @@
|
||||
/*-
|
||||
* Copyright (c) 1991, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from software contributed to Berkeley by
|
||||
* Donn Seeley at Berkeley Software Design, Inc.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)pathnames.h 8.1 (Berkeley) 6/5/93
|
||||
*/
|
||||
|
||||
#include <paths.h>
|
||||
|
||||
#define _PATH_SLOGGER "/sbin/session_logger"
|
||||
#define _PATH_RUNCOM "/etc/rc"
|
26
sbin/reboot/Makefile
Normal file
26
sbin/reboot/Makefile
Normal file
@ -0,0 +1,26 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/5/93
|
||||
|
||||
PROG= reboot
|
||||
DPADD= ${LIBUTIL}
|
||||
LDADD= -lutil
|
||||
MAN8= reboot.8 boot_hp300.8 boot_i386.8 boot_sparc.8 boot_tahoe.8 boot_vax.8
|
||||
MLINKS= reboot.8 halt.8 reboot.8 fastboot.8 reboot.8 fasthalt.8
|
||||
|
||||
ARCH!= uname -m
|
||||
|
||||
.if exists (${.CURDIR}/boot_${ARCH}.8)
|
||||
MLINKS+= boot_${ARCH}.8 boot.8
|
||||
.endif
|
||||
|
||||
LINKS= ${BINDIR}/reboot ${BINDIR}/halt ${BINDIR}/reboot ${BINDIR}/fastboot \
|
||||
${BINDIR}/reboot ${BINDIR}/fasthalt
|
||||
|
||||
XXXBROKENafterinstall:
|
||||
${MINSTALL} boot_hp300.8 ${DESTDIR}${MANDIR}8/hp300/boot.8
|
||||
${MINSTALL} boot_i386.8 ${DESTDIR}${MANDIR}8/i386/boot.8
|
||||
${MINSTALL} boot_sparc.8 ${DESTDIR}${MANDIR}8/sparc/boot.8
|
||||
${MINSTALL} boot_tahoe.8 ${DESTDIR}${MANDIR}8/tahoe/boot.8
|
||||
${MINSTALL} boot_vax.8 ${DESTDIR}${MANDIR}8/vax/boot.8
|
||||
|
||||
.include <bsd.man.mk>
|
||||
.include <bsd.prog.mk>
|
117
sbin/reboot/boot.hp300.8
Normal file
117
sbin/reboot/boot.hp300.8
Normal file
@ -0,0 +1,117 @@
|
||||
.\" Copyright (c) 1990, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" This code is derived from software contributed to Berkeley by
|
||||
.\" the Systems Programming Group of the University of Utah Computer
|
||||
.\" Science Department.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)boot_hp300.8 8.2 (Berkeley) 4/19/94
|
||||
.\"
|
||||
.Dd April 19, 1994
|
||||
.Dt BOOT_HP300 8 hp300
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm boot
|
||||
.Nd
|
||||
system bootstrapping procedures
|
||||
.Sh DESCRIPTION
|
||||
.Sy Power fail and crash recovery.
|
||||
Normally, the system will reboot itself at power-up or after crashes.
|
||||
An automatic consistency check of the file systems will be performed,
|
||||
and unless this fails, the system will resume multi-user operations.
|
||||
.Pp
|
||||
.Sy Cold starts.
|
||||
On an HP300, the boot procedure uses the boot ROM to load a boot program
|
||||
from an
|
||||
.Tn LIF
|
||||
format directory at the beginning of an attached disk.
|
||||
The
|
||||
.Pa /usr/mdec
|
||||
directory contains a disk boot programs which should be placed in a
|
||||
new pack automatically by
|
||||
.Xr newfs 8
|
||||
when the ``a'' partition file system on the pack is created.
|
||||
.Pp
|
||||
This
|
||||
.Em boot
|
||||
program
|
||||
finds the corresponding file on the given device
|
||||
.Pf ( Ar kernel
|
||||
by default),
|
||||
loads that file into memory,
|
||||
and starts the program at the entry address specified in the program header.
|
||||
.Pp
|
||||
The boot program can be interrupted by typing `^C' (ctrl-C).
|
||||
This will force the boot program to interactively prompt for a system to boot.
|
||||
If not interrupted, it will boot from the device from which the boot
|
||||
program itself was loaded.
|
||||
.Pp
|
||||
The file specifications used for an interactive boot are of the form:
|
||||
.Pp
|
||||
.Dl device(unit, minor)
|
||||
.Pp
|
||||
where
|
||||
.Ar device
|
||||
is the type of the device to be searched,
|
||||
.Ar unit
|
||||
is 8 * the hpib number plus the unit number of the disk or tape,
|
||||
and
|
||||
.Ar minor
|
||||
is the disk partition or tape file number.
|
||||
Normal line editing characters can be used when typing the file specification.
|
||||
Currently, ``rd'' and ``sd'' are the only valid
|
||||
.Ar device
|
||||
specifiers.
|
||||
.Pp
|
||||
For example,
|
||||
to boot from the `a' file system of unit 0 on HP-IB 2,
|
||||
type
|
||||
.Ql rd(16, 0)kernel
|
||||
to the boot prompt.
|
||||
For tapes, the minor device number gives a file offset.
|
||||
.Pp
|
||||
In an emergency, the bootstrap methods described in the paper
|
||||
.%T Installing 4.3bsd on the HP300
|
||||
can be used to boot from a distribution tape.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /usr/mdec/installboot -compact
|
||||
.It Pa /kernel
|
||||
system code
|
||||
.It Pa /usr/mdec/bootrd
|
||||
.Tn LIF
|
||||
format boot block
|
||||
.It Pa /usr/mdec/installboot
|
||||
program to install boot blocks
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr halt 8 ,
|
||||
.Xr reboot 8 ,
|
||||
.Xr shutdown 8
|
169
sbin/reboot/boot.i386.8
Normal file
169
sbin/reboot/boot.i386.8
Normal file
@ -0,0 +1,169 @@
|
||||
.\" Copyright (c) 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" This code is derived from software written and contributed
|
||||
.\" to Berkeley by William Jolitz.
|
||||
.\"
|
||||
.\" Almost completely rewritten for FreeBSD 2.1 by Joerg Wunsch.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)boot_i386.8 8.2 (Berkeley) 4/19/94
|
||||
.\"
|
||||
.\" $Id: boot.i386.8,v 1.1 1997/10/04 05:23:54 gdr Exp $
|
||||
.\"
|
||||
.Dd April 19, 1994
|
||||
.Dt BOOT 8 i386
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm boot
|
||||
.Nd
|
||||
system bootstrapping procedures
|
||||
.Sh DESCRIPTION
|
||||
.Sy Power fail and crash recovery.
|
||||
Normally, the system will reboot itself at power-up or after crashes.
|
||||
An automatic consistency check of the file systems will be performed,
|
||||
and unless this fails, the system will resume multi-user operations.
|
||||
.Pp
|
||||
.Sy Cold starts.
|
||||
Most 386
|
||||
.Tn "PC AT"
|
||||
clones attempt to boot the floppy disk drive 0 (otherwise known as
|
||||
drive A:) first, and failing that, attempt to boot the hard disk
|
||||
controller 1, drive 0 (otherwise known as drive C:, or drive 0x80 in
|
||||
the BIOS). The automatic boot will attempt to load
|
||||
.Pa /kernel
|
||||
from partition
|
||||
.Ql a
|
||||
of either the floppy or the hard disk.
|
||||
This boot may be aborted by typing any character on the keyboard
|
||||
at the
|
||||
.Ql Boot:
|
||||
prompt. At this time, the following input will be accepted:
|
||||
.Bl -tag -offset indent -width 10x
|
||||
.It \&?
|
||||
Give a short listing of the files in the root directory of the default
|
||||
boot device, as a hint about available boot files.
|
||||
.It Op ctrlr(unit,part) Op /filename Op Fl abcCdhrsv
|
||||
Specify boot file and flags.
|
||||
.Bl -tag -offset indent -width 10x -compact
|
||||
.It ctrlr
|
||||
The controller to boot from. Note that the controller is required
|
||||
to have BIOS support since the BIOS services are used to load the
|
||||
boot file image.
|
||||
.Pp
|
||||
Common controller names are:
|
||||
.Bl -tag -offset indent -width "wdXX" -compact
|
||||
.It wd
|
||||
ST506, IDE, ESDI, RLL disks on a WD100[2367] or lookalike
|
||||
controller
|
||||
.It fd
|
||||
5 1/4" or 3 1/2" High density floppies
|
||||
.It sd
|
||||
SCSI disk on any supported SCSI controller
|
||||
.It cd
|
||||
boot from CDROM
|
||||
.It hd
|
||||
Pseudo-controller, must be used to specify that unit number
|
||||
1 (known to the BIOS as drive 0x81) is on a different controller
|
||||
than unit number 0. This can happen for the wd vs. sd case.
|
||||
.El
|
||||
.It unit
|
||||
The unit number of the drive on the controller being used. Either 0
|
||||
or 1 for the wd and fd and most sd controllers, between 0 and 6 for
|
||||
some newer sd controllers.
|
||||
.It part
|
||||
The partition letter inside the BSD portion of the disk. See
|
||||
.Xr disklabel 8 .
|
||||
By convention, only partition
|
||||
.Ql a
|
||||
contains a bootable image. If sliced disks are used
|
||||
.Pq Dq fdisk partitions ,
|
||||
only the first BSD slice can be used to boot from. The partition
|
||||
letter does always refer to this slice then.
|
||||
.It /filename
|
||||
The pathname of the file to boot; must be inside the root directory
|
||||
of the specified partition. Defaults to
|
||||
.Pa /kernel .
|
||||
Symbolic links are not supported (hard links are).
|
||||
.It Fl abcCdhrsv
|
||||
Boot flags:
|
||||
.Bl -tag -offset indent -width "-CXX" -compact
|
||||
.It Fl a
|
||||
ask for the device to install as root file system during kernel
|
||||
initialization
|
||||
.It Fl b
|
||||
do not automatically reboot after shutdown or crash
|
||||
.It Fl c
|
||||
run UserConfig to modify hardware parameters for the loaded
|
||||
kernel
|
||||
.It Fl C
|
||||
boot from CDROM
|
||||
.It Fl d
|
||||
enter the DDB kernel debugger
|
||||
.Pq see Xr ddb 4
|
||||
before configuring any device (except the system's console)
|
||||
.It Fl h
|
||||
toggle serial/graphics console
|
||||
.It Fl r
|
||||
do not establish the root directory of the file system
|
||||
hierarchy on the device where the boot file is being loaded
|
||||
from
|
||||
.It Fl s
|
||||
boot into single-user mode; if the console is marked as
|
||||
.Dq insecure
|
||||
.Pq see Xr ttys 5 ,
|
||||
the root password must be entered
|
||||
.It Fl v
|
||||
be verbose during device probing
|
||||
.El
|
||||
.El
|
||||
.El
|
||||
.Sh FILES
|
||||
.Bl -tag -width /kernelxx -compact
|
||||
.It Pa /kernel
|
||||
system code
|
||||
.\" .It Pa /boot
|
||||
.\" system bootstrap
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr ddb 4 ,
|
||||
.Xr ttys 5 ,
|
||||
.Xr halt 8 ,
|
||||
.Xr reboot 8 ,
|
||||
.Xr shutdown 8 ,
|
||||
.Xr disklabel 8 .
|
||||
.Sh BUGS
|
||||
The disklabel format used by this version of
|
||||
.Bx
|
||||
is quite
|
||||
different from that of other architectures.
|
||||
.Pp
|
||||
The boot flags are not very self-explanatory, and the alphabet has
|
||||
too few characters to implement every potentially useful boot option.
|
89
sbin/reboot/boot.sparc.8
Normal file
89
sbin/reboot/boot.sparc.8
Normal file
@ -0,0 +1,89 @@
|
||||
.\" Copyright (c) 1992, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)boot_sparc.8 8.2 (Berkeley) 4/19/94
|
||||
.\"
|
||||
.Dd April 19, 1994
|
||||
.Dt REBOOT 8 sparc
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm reboot
|
||||
.Nd
|
||||
.Tn UNIX
|
||||
bootstrapping procedures
|
||||
.Sh SYNOPSIS
|
||||
.Nm reboot
|
||||
.Op Fl n
|
||||
.Op Fl q
|
||||
.Sh DESCRIPTION
|
||||
.Sy Power fail and crash recovery.
|
||||
Normally, the system will reboot itself at power-up or after crashes.
|
||||
An automatic consistency check of the file systems will be performed
|
||||
as described in
|
||||
.Xr fsck 8 .
|
||||
and unless this fails, the system will resume multi-user operations.
|
||||
.Pp
|
||||
.Sy Cold starts
|
||||
The SPARC system currently uses the SunOS bootstrap loaders.
|
||||
This will be changed in a future version of the system.
|
||||
The SunOS boot will attempt to load
|
||||
.Pa kernel
|
||||
from partition A of the boot device,
|
||||
which must currently be an ``sd'' disk.
|
||||
.Pp
|
||||
The
|
||||
.Op Fl s
|
||||
flag to the SunOS boot loader will being the system up in single-user mode.
|
||||
The
|
||||
.Op Fl d
|
||||
flag to the SunOS boot loader will bring the system up in debug mode.
|
||||
Here it waits for a kernel debugger connect; see
|
||||
.Xr kgdb 8 .
|
||||
Other flags are currently ignored.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /kernelxx -compact
|
||||
.It Pa /kernel
|
||||
system code
|
||||
.It Pa /boot
|
||||
system bootstrap
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr crash 8 ,
|
||||
.Xr disklabel 8 ,
|
||||
.Xr fsck 8 ,
|
||||
.Xr halt 8 ,
|
||||
.Xr init 8 ,
|
||||
.Xr rc 8 ,
|
||||
.Xr shutdown 8 ,
|
||||
.Xr syslogd 8
|
||||
.Sh BUGS
|
||||
The use of Sun disk labels, without the ability to write them,
|
||||
is problematic.
|
152
sbin/reboot/boot.tahoe.8
Normal file
152
sbin/reboot/boot.tahoe.8
Normal file
@ -0,0 +1,152 @@
|
||||
.\" Copyright (c) 1980, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)boot_tahoe.8 8.2 (Berkeley) 4/19/94
|
||||
.\"
|
||||
.Dd April 19, 1994
|
||||
.Dt BOOT 8 tahoe
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm boot
|
||||
.Nd
|
||||
system bootstrapping procedures
|
||||
.Sh DESCRIPTION
|
||||
.Sy Power fail and crash recovery.
|
||||
Normally, the system will reboot itself at power-up or after crashes.
|
||||
An automatic consistency check of the file systems will be performed,
|
||||
and unless this fails, the system will resume multi-user operations.
|
||||
.Pp
|
||||
.Sy Cold starts.
|
||||
These are processor-type dependent.
|
||||
On the
|
||||
.Tn CCI
|
||||
Power 6/32 and related processors,
|
||||
the system will do a standard autoboot from drive 0
|
||||
upon power-up or reset.
|
||||
This automatic boot may be cancelled by typing a
|
||||
.Ql \&#
|
||||
in the first few seconds after reset.
|
||||
This enters console mode; the console prompt is
|
||||
.Ql >
|
||||
or
|
||||
.Ql \&# .
|
||||
The boot flags can be set to any hexadecimal value
|
||||
.Fl n
|
||||
with the command
|
||||
.Pp
|
||||
.Bd -filled -offset indent -compact
|
||||
.Li \&#> p23
|
||||
.Ar n .
|
||||
.Ed
|
||||
.Pp
|
||||
The default device may be examined or set; see the Diagnostics and Debugging
|
||||
manual for the processor for details on device naming and syntax.
|
||||
After setting the boot flags and/or device,
|
||||
a bootstrap sequence can be initiated with
|
||||
.Pp
|
||||
.Dl #> fb
|
||||
.Pp
|
||||
A specific device or bootstrap file may be used; for example,
|
||||
.Pp
|
||||
.Dl \&#> \&fb xfd(1,0)
|
||||
.Pp
|
||||
would boot from the `a' partition on
|
||||
.Tn XFD
|
||||
drive 1.
|
||||
.Pp
|
||||
The file specifications used for the boostrap
|
||||
when loaded with the
|
||||
.Dq askme
|
||||
flag
|
||||
(register 23 set to 1 or 3)
|
||||
are of the form:
|
||||
.Pp
|
||||
.Dl device(adaptor,controller,unit,minor)
|
||||
.Pp
|
||||
where
|
||||
.Ar device
|
||||
is the type of the device to be searched,
|
||||
.Ar adaptor
|
||||
is number of the
|
||||
.Tn VERSAbus
|
||||
(or
|
||||
.Tn VMEbus )
|
||||
to which the device is attached,
|
||||
.Ar controller
|
||||
is the unit number of the controller on that buss,
|
||||
.Ar unit
|
||||
is the unit number of the disk or tape,
|
||||
and
|
||||
.Ar minor
|
||||
is the disk partition or tape file number.
|
||||
Leading adaptor or controller numbers default to 0.
|
||||
Normal line editing characters can be used when typing the file specification.
|
||||
The following list of supported devices may vary from installation to
|
||||
installation:
|
||||
.Pp
|
||||
.Bd -unfilled -offset indent -compact
|
||||
dk SMD or ESDI disks on VDDC or SMD-E
|
||||
cy tape on Ciprico Tapemaster controller
|
||||
.Ed
|
||||
.Pp
|
||||
For example,
|
||||
to boot from a file system which starts at cylinder 0
|
||||
of unit 0 of an
|
||||
.Tn SMD-E
|
||||
disk, type
|
||||
.Ql dk(0,0)kernel
|
||||
to the boot prompt;
|
||||
.Ql dk(2,1,0)kernel
|
||||
would specify drive 1 on
|
||||
.Tn SMD-E
|
||||
controller 2.
|
||||
.Pp
|
||||
In an emergency, the bootstrap methods described in the paper
|
||||
.%T "Installing and Operating 4.3 BSD-tahoe UNIX on the Tahoe"
|
||||
can be used
|
||||
to boot from a distribution tape.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /kernel -compact
|
||||
.It Pa /kernel
|
||||
system code
|
||||
.It Pa /boot
|
||||
system bootstrap
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr halt 8 ,
|
||||
.Xr reboot 8 ,
|
||||
.Xr shutdown 8
|
||||
.Sh BUGS
|
||||
The disklabel format used by some versions of the console processor
|
||||
is different than the format used by
|
||||
.Tn UNIX
|
||||
and the bootstrap.
|
||||
.Sh HISTORY
|
322
sbin/reboot/boot.vax.8
Normal file
322
sbin/reboot/boot.vax.8
Normal file
@ -0,0 +1,322 @@
|
||||
.\" Copyright (c) 1980, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)boot_vax.8 8.2 (Berkeley) 4/19/94
|
||||
.\"
|
||||
.Dd April 19, 1994
|
||||
.Dt BOOT 8 vax
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm boot
|
||||
.Nd
|
||||
system bootstrapping procedures
|
||||
.Sh DESCRIPTION
|
||||
.Sy Power fail and crash recovery.
|
||||
Normally, the system will reboot itself at power-up or after crashes.
|
||||
Provided the auto-restart is enabled on the machine front panel,
|
||||
an automatic consistency check of the file systems will be performed,
|
||||
and unless this fails, the system will resume multi-user operations.
|
||||
.Pp
|
||||
.Sy Cold starts.
|
||||
These are processor-type dependent.
|
||||
On an 11/780, there are two floppy files for each disk controller,
|
||||
both of which cause boots from unit 0 of the root file system
|
||||
of a controller located on mba0 or uba0.
|
||||
One gives a single user shell, while the other invokes the multi-user
|
||||
automatic reboot.
|
||||
Thus these files are
|
||||
.Tn HPS
|
||||
and
|
||||
.Tn HPM
|
||||
for the single
|
||||
and multi-user boot from
|
||||
.Tn MASSBUS
|
||||
RP06/RM03/RM05 disks,
|
||||
.Tn UPS
|
||||
and
|
||||
.Tn UPM
|
||||
for
|
||||
.Tn UNIBUS
|
||||
storage module controller and disks
|
||||
such as the
|
||||
.Tn EMULEX
|
||||
SC-21
|
||||
and
|
||||
.Tn AMPEX
|
||||
9300 pair,
|
||||
.Tn RAS
|
||||
and
|
||||
.Tn RAM
|
||||
to boot from
|
||||
.Tn MSCP
|
||||
controllers and disks such as the RA81,
|
||||
or
|
||||
.Tn HKS
|
||||
and
|
||||
.Tn HKM
|
||||
for RK07 disks.
|
||||
There is also a script for booting from the default device,
|
||||
which is normally a copy of one of the standard multi-user boot scripts,
|
||||
but which may be modified to perform other actions
|
||||
or to boot from a different unit.
|
||||
The situation on the 8600 is similar, with scripts loaded from the console RL02.
|
||||
.Pp
|
||||
Giving the command
|
||||
.Pp
|
||||
.Dl >>>BOOT HPM
|
||||
.Pp
|
||||
would boot the system from (e.g.) an RP06 and run the automatic consistency
|
||||
check as described in
|
||||
.Xr fsck 8 .
|
||||
(Note that it may
|
||||
be necessary to type control-P
|
||||
and halt the processor
|
||||
to gain the attention of the
|
||||
.Tn LSI-11
|
||||
before getting the >>> prompt.)
|
||||
The command
|
||||
.Pp
|
||||
.Dl >>>BOOT ANY
|
||||
.Pp
|
||||
invokes a version of the boot program in a way which allows you to
|
||||
specify any system as the system to be booted.
|
||||
It reads from the console a device specification (see below) followed
|
||||
immediately by a pathname.
|
||||
.Pp
|
||||
The scripts may be modified for local configuration if necessary.
|
||||
The flags are placed in register 11 (as defined in
|
||||
.Aq Pa sys/reboot.h ) .
|
||||
The boot device is specified in register 10.
|
||||
The encoding of this register is also defined in
|
||||
.Aq Pa sys/reboot.h .
|
||||
The current encoding has a historical basis, and is shown in the following
|
||||
table:
|
||||
.Pp
|
||||
.Bd -unfilled -offset indent -compact
|
||||
bits usage
|
||||
0-7 boot device type (the device major number)
|
||||
8-15 disk partition
|
||||
16-19 drive unit
|
||||
20-23 controller number
|
||||
24-27 adaptor number (UNIBUS or MASSBUS as appropriate)
|
||||
.Ed
|
||||
.Pp
|
||||
The adaptor number corresponds to the normal configuration on the 11/750,
|
||||
and to the order in which adaptors are found on the 11/780 and 8600
|
||||
(generally the same as the numbers used by
|
||||
.Tn UNIX ) .
|
||||
.Pp
|
||||
On an 11/750, the reset button will boot from the device
|
||||
selected by the front panel boot device switch. In systems
|
||||
with RK07's, position B normally selects the RK07 for boot.
|
||||
This will boot multi-user. To boot from RK07 with boot flags you
|
||||
may specify
|
||||
.Pp
|
||||
.Bd -unfilled -offset indent -compact
|
||||
.Li \&>>>B/ Ns Fl n No DMA0
|
||||
.Ed
|
||||
.Pp
|
||||
where, giving a
|
||||
.Ar n
|
||||
of 1 causes the boot program
|
||||
to ask for the name of the system to be bootstrapped,
|
||||
giving a
|
||||
.Ar n
|
||||
of 2 causes the boot program to come up single
|
||||
user, and a
|
||||
.Ar n
|
||||
of 3 causes both of these actions to occur.
|
||||
The ``DM'' specifies RK07, the ``A'' represents the adaptor number
|
||||
.Pf ( Tn UNIBUS
|
||||
or
|
||||
.Tn MASSBUS ) ,
|
||||
and the ``0'' is the drive unit number.
|
||||
Other disk types which may be used are DB
|
||||
.Pq Tn MASSBUS ,
|
||||
DD (TU58),
|
||||
and DU
|
||||
.Pf ( Tn UDA-50/RA
|
||||
disk).
|
||||
A non-zero disk partition can be used by adding (partition times 1000 hex)
|
||||
to
|
||||
.Ar n .
|
||||
.Pp
|
||||
The boot procedure on the Micro
|
||||
.Tn VAX
|
||||
II
|
||||
is similar.
|
||||
A switch on the back panel sets the power-up action
|
||||
to autoboot or to halt.
|
||||
When halted, the processor may be booted using the same syntax
|
||||
as on the 11/750.
|
||||
.Pp
|
||||
The 11/750 boot procedure uses the boot roms to load block 0 off of
|
||||
the specified device. The /usr/mdec directory contains a number
|
||||
of bootstrap programs for the various disks which should be placed
|
||||
in a new pack by
|
||||
.Xr disklabel 8 .
|
||||
Similarly, the Micro
|
||||
.Tn VAX
|
||||
II boot procedure loads a boot parameter block
|
||||
from block 0 of the disk.
|
||||
The
|
||||
.Xr rdboot
|
||||
.Dq bootstrap
|
||||
contains the correct parameters for an
|
||||
.Tn MSCP
|
||||
disk such
|
||||
as the RD53.
|
||||
.Pp
|
||||
On any processor, the
|
||||
.Em boot
|
||||
program
|
||||
finds the corresponding file on the given device
|
||||
.Pf ( Pa kernel
|
||||
by default), loads that file
|
||||
into memory location zero, and starts the program at the entry address
|
||||
specified in the program header (after clearing off the high bit
|
||||
of the specified entry address).
|
||||
.Pp
|
||||
The file specifications used with
|
||||
.Dq BOOT ANY
|
||||
or
|
||||
.Dq \&B/3
|
||||
are of the form:
|
||||
.Pp
|
||||
.Dl device(adaptor,controller,unit,minor)
|
||||
.Pp
|
||||
where
|
||||
.Ar device
|
||||
is the type of the device to be searched,
|
||||
.Ar adaptor
|
||||
is the
|
||||
.Tn UNIBUS
|
||||
or
|
||||
.Tn MASSBUS
|
||||
number of the adaptor to which the device is attached,
|
||||
.Ar controller
|
||||
is the unit number of the controller or
|
||||
.Tn MASSBUS
|
||||
tape formatter on that adaptor,
|
||||
.Ar unit
|
||||
is the unit number of the disk or transport slave unit of the tape,
|
||||
and
|
||||
.Ar minor
|
||||
is the disk partition or tape file number.
|
||||
Leading adaptor or controller numbers default to 0.
|
||||
Normal line editing characters can be used when typing the file specification.
|
||||
The following list of supported devices may vary from installation to
|
||||
installation:
|
||||
.Pp
|
||||
.Bd -unfilled -offset indent -compact
|
||||
hp MASSBUS disk drive
|
||||
up UNIBUS storage module drive
|
||||
ht TE16,TU45,TU77 on MASSBUS
|
||||
kra storage module on a KDB50
|
||||
mt TU78 on MASSBUS
|
||||
hk RK07 on UNIBUS
|
||||
ra storage module on a MSCP-compatible UNIBUS controller
|
||||
rb storage module on a 730 IDC
|
||||
rl RL02 on UNIBUS
|
||||
tm TM11 emulation tape drives on UNIBUS
|
||||
tms TMSCP-compatible tape
|
||||
ts TS11 on UNIBUS
|
||||
ut UNIBUS TU45 emulator
|
||||
.Ed
|
||||
.Pp
|
||||
For example,
|
||||
to boot from a file system which starts at cylinder 0
|
||||
of unit 0 of a
|
||||
.Tn MASSBUS
|
||||
disk, type
|
||||
.Ql hp(0,0)kernel
|
||||
to the boot prompt;
|
||||
.Ql hp(2,0,1,0)kernel
|
||||
would specify drive 1 on
|
||||
.Tn MASSBUS
|
||||
adaptor 2;
|
||||
.Ql up(0,0)kernel
|
||||
would specify a
|
||||
.Tn UNIBUS
|
||||
drive,
|
||||
.Ql hk(0,0)kernel
|
||||
would specify
|
||||
an RK07 disk drive,
|
||||
.Ql ra(1,0,0,0)kernel
|
||||
would specify a
|
||||
.Tn UDA50
|
||||
disk drive on a second
|
||||
.Tn UNIBUS ,
|
||||
and
|
||||
.Ql rb(0,0)kernel
|
||||
would specify a
|
||||
disk on a 730
|
||||
.Tn IDC .
|
||||
For tapes, the minor device number gives a file offset;
|
||||
.Ql mt(1,2,3,4)
|
||||
would specify the fifth file on slave 3 of the formatter
|
||||
at
|
||||
.Ql drive
|
||||
2 on mba 1.
|
||||
.Pp
|
||||
On an 11/750 with patchable control store,
|
||||
microcode patches will be installed by
|
||||
.Em boot
|
||||
if the file
|
||||
.Pa psc750.bin
|
||||
exists in the root of the filesystem from which the system is booted.
|
||||
.Pp
|
||||
In an emergency, the bootstrap methods described in the paper
|
||||
.%T Installing and Operating 4.3bsd
|
||||
can be used to boot from a distribution tape.
|
||||
.Sh FILES
|
||||
.Bl -tag -width /usr/mdec/xxboot -compact
|
||||
.It Pa /kernel
|
||||
system code
|
||||
.It Pa /boot
|
||||
system bootstrap
|
||||
.It Pa /usr/mdec/xxboot
|
||||
sector-0 boot block for 750, xx is disk type
|
||||
.It Pa /usr/mdec/bootxx
|
||||
second-stage boot for 750, xx is disk type
|
||||
.It Pa /pcs750.bin
|
||||
microcode patch file on 750
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr arff 8 ,
|
||||
.Xr halt 8 ,
|
||||
.Xr reboot 8 ,
|
||||
.Xr shutdown 8
|
||||
.Sh HISTORY
|
||||
The
|
||||
.Nm
|
||||
command appeared in
|
||||
.Bx 4.0 .
|
97
sbin/reboot/reboot.8
Normal file
97
sbin/reboot/reboot.8
Normal file
@ -0,0 +1,97 @@
|
||||
.\" Copyright (c) 1990, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)reboot.8 8.1 (Berkeley) 6/9/93
|
||||
.\"
|
||||
.TH REBOOT 8 "4 October 1997" GNO "System Administration"
|
||||
.SH NAME
|
||||
.BR reboot ,
|
||||
.BR halt
|
||||
\- stopping and restarting the system
|
||||
.SH SYNOPSIS
|
||||
.BR "halt -nq"
|
||||
.br
|
||||
.BR "reboot -nq"
|
||||
.br
|
||||
.BR "fasthalt -nq"
|
||||
.br
|
||||
.BR "fastboot -nq"
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.BR halt
|
||||
and
|
||||
.BR reboot
|
||||
utilities flush the file system cache to disk, send all running processes
|
||||
a SIGTERM (and subsequently a SIGKILL) and, respectively, halt or restart
|
||||
the system.
|
||||
The action is logged, including entering a shutdown record into the login
|
||||
accounting file.
|
||||
.LP
|
||||
The options are as follows:
|
||||
.RS
|
||||
.IP \fBn\fR
|
||||
If the
|
||||
.BR n
|
||||
option is specified,
|
||||
the file system cache is not flushed.
|
||||
This option should probably not be used.
|
||||
.IP \fBq\fR
|
||||
If the
|
||||
.B q
|
||||
option is specified,
|
||||
the system is halted or restarted quickly and ungracefully, and only
|
||||
the flushing of the file system cache is performed.
|
||||
This option should probably not be used.
|
||||
.RE
|
||||
.LP
|
||||
The
|
||||
.BR fasthalt
|
||||
and
|
||||
.BR fastboot
|
||||
utilities are nothing more than aliases for the
|
||||
.BR halt
|
||||
and
|
||||
.BR reboot
|
||||
utilities.
|
||||
.LP
|
||||
Normally, the
|
||||
.BR shutdown (8)
|
||||
utility is used when the system needs to be halted or restarted, giving
|
||||
users advance warning of their impending doom.
|
||||
.SH SEE ALSO
|
||||
.BR utmp (5),
|
||||
.BR boot (8),
|
||||
.BR shutdown (8),
|
||||
.BR sync (8)
|
||||
.SH HISTORY
|
||||
A
|
||||
.BR reboot
|
||||
command appeared in Version 6 AT&T UNIX.
|
204
sbin/reboot/reboot.c
Normal file
204
sbin/reboot/reboot.c
Normal file
@ -0,0 +1,204 @@
|
||||
/*
|
||||
* Copyright (c) 1980, 1986, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char copyright[] =
|
||||
"@(#) Copyright (c) 1980, 1986, 1993\n\
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)reboot.c 8.1 (Berkeley) 6/5/93";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/reboot.h>
|
||||
#include <signal.h>
|
||||
#include <pwd.h>
|
||||
#include <errno.h>
|
||||
#include <syslog.h>
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
void err __P((const char *fmt, ...));
|
||||
void usage __P((void));
|
||||
|
||||
int dohalt;
|
||||
|
||||
int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
register int i;
|
||||
struct passwd *pw;
|
||||
int ch, howto, lflag, nflag, qflag, sverrno;
|
||||
char *p, *user;
|
||||
|
||||
if (strstr((p = rindex(*argv, '/')) ? p + 1 : *argv, "halt")) {
|
||||
dohalt = 1;
|
||||
howto = RB_HALT;
|
||||
} else
|
||||
howto = 0;
|
||||
lflag = nflag = qflag = 0;
|
||||
while ((ch = getopt(argc, argv, "lnq")) != EOF)
|
||||
switch(ch) {
|
||||
case 'l': /* Undocumented; used by shutdown. */
|
||||
lflag = 1;
|
||||
break;
|
||||
case 'n':
|
||||
nflag = 1;
|
||||
howto |= RB_NOSYNC;
|
||||
break;
|
||||
case 'q':
|
||||
qflag = 1;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
if (geteuid())
|
||||
err("%s", strerror(EPERM));
|
||||
|
||||
if (qflag) {
|
||||
reboot(howto);
|
||||
err("%s", strerror(errno));
|
||||
}
|
||||
|
||||
/* Log the reboot. */
|
||||
if (!lflag) {
|
||||
if ((user = getlogin()) == NULL)
|
||||
user = (pw = getpwuid(getuid())) ?
|
||||
pw->pw_name : "???";
|
||||
if (dohalt) {
|
||||
openlog("halt", 0, LOG_AUTH | LOG_CONS);
|
||||
syslog(LOG_CRIT, "halted by %s", user);
|
||||
} else {
|
||||
openlog("reboot", 0, LOG_AUTH | LOG_CONS);
|
||||
syslog(LOG_CRIT, "rebooted by %s", user);
|
||||
}
|
||||
}
|
||||
logwtmp("~", "shutdown", "");
|
||||
|
||||
/*
|
||||
* Do a sync early on, so disks start transfers while we're off
|
||||
* killing processes. Don't worry about writes done before the
|
||||
* processes die, the reboot system call syncs the disks.
|
||||
*/
|
||||
if (!nflag)
|
||||
sync();
|
||||
|
||||
/* Just stop init -- if we fail, we'll restart it. */
|
||||
if (kill(1, SIGTSTP) == -1)
|
||||
err("SIGTSTP init: %s", strerror(errno));
|
||||
|
||||
/* Ignore the SIGHUP we get when our parent shell dies. */
|
||||
(void)signal(SIGHUP, SIG_IGN);
|
||||
|
||||
/* Send a SIGTERM first, a chance to save the buffers. */
|
||||
if (kill(-1, SIGTERM) == -1)
|
||||
err("SIGTERM processes: %s", strerror(errno));
|
||||
|
||||
/*
|
||||
* After the processes receive the signal, start the rest of the
|
||||
* buffers on their way. Wait 5 seconds between the SIGTERM and
|
||||
* the SIGKILL to give everybody a chance.
|
||||
*/
|
||||
sleep(2);
|
||||
if (!nflag)
|
||||
sync();
|
||||
sleep(3);
|
||||
|
||||
for (i = 1;; ++i) {
|
||||
if (kill(-1, SIGKILL) == -1) {
|
||||
if (errno == ESRCH)
|
||||
break;
|
||||
goto restart;
|
||||
}
|
||||
if (i > 5) {
|
||||
(void)fprintf(stderr,
|
||||
"WARNING: some process(es) wouldn't die\n");
|
||||
break;
|
||||
}
|
||||
(void)sleep(2 * i);
|
||||
}
|
||||
|
||||
reboot(howto);
|
||||
/* FALLTHROUGH */
|
||||
|
||||
restart:
|
||||
sverrno = errno;
|
||||
err("%s%s", kill(1, SIGHUP) == -1 ? "(can't restart init): " : "",
|
||||
strerror(sverrno));
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
void
|
||||
usage()
|
||||
{
|
||||
(void)fprintf(stderr, "usage: %s [-nq]\n", dohalt ? "halt" : "reboot");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
#if __STDC__
|
||||
#include <stdarg.h>
|
||||
#else
|
||||
#include <varargs.h>
|
||||
#endif
|
||||
|
||||
void
|
||||
#if __STDC__
|
||||
err(const char *fmt, ...)
|
||||
#else
|
||||
err(fmt, va_alist)
|
||||
char *fmt;
|
||||
va_dcl
|
||||
#endif
|
||||
{
|
||||
va_list ap;
|
||||
#if __STDC__
|
||||
va_start(ap, fmt);
|
||||
#else
|
||||
va_start(ap);
|
||||
#endif
|
||||
(void)fprintf(stderr, "%s: ", dohalt ? "halt" : "reboot");
|
||||
(void)vfprintf(stderr, fmt, ap);
|
||||
va_end(ap);
|
||||
(void)fprintf(stderr, "\n");
|
||||
exit(1);
|
||||
/* NOTREACHED */
|
||||
}
|
9
sbin/shutdown/Makefile
Normal file
9
sbin/shutdown/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/5/93
|
||||
|
||||
PROG= shutdown
|
||||
MAN8= shutdown.8
|
||||
BINOWN= root
|
||||
BINGRP= operator
|
||||
BINMODE=4550
|
||||
|
||||
.include <bsd.prog.mk>
|
41
sbin/shutdown/pathnames.h
Normal file
41
sbin/shutdown/pathnames.h
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)pathnames.h 8.1 (Berkeley) 6/5/93
|
||||
*/
|
||||
|
||||
#include <paths.h>
|
||||
|
||||
#define _PATH_FASTBOOT "/fastboot"
|
||||
#define _PATH_HALT "/sbin/halt"
|
||||
#define _PATH_REBOOT "/sbin/reboot"
|
||||
#define _PATH_WALL "/usr/bin/wall"
|
148
sbin/shutdown/shutdown.8
Normal file
148
sbin/shutdown/shutdown.8
Normal file
@ -0,0 +1,148 @@
|
||||
.\" Copyright (c) 1988, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)shutdown.8 8.1 (Berkeley) 6/5/93
|
||||
.\"
|
||||
.TH SHUTDOWN 8 "4 October 1997" GNO "System Administration"
|
||||
.SH NAME
|
||||
.BR shutdown
|
||||
\- close down the system at a given time
|
||||
.SH SYNOPSIS
|
||||
.BR shutdown
|
||||
[
|
||||
.B -
|
||||
] [
|
||||
.BR -hkrn
|
||||
]
|
||||
.I time
|
||||
.I "warning-message ..."
|
||||
.SH DESCRIPTION
|
||||
.BR Shutdown
|
||||
provides an automated shutdown procedure for super-users
|
||||
to nicely notify users when the system is shutting down,
|
||||
saving them from system administrators, hackers, and gurus, who
|
||||
would otherwise not bother with such niceties.
|
||||
.LP
|
||||
Available friendlinesses:
|
||||
.RS
|
||||
.IP \fBh\fR
|
||||
The system is halted at the specified
|
||||
.BR time
|
||||
when
|
||||
.BR shutdown
|
||||
execs
|
||||
.BR halt (8).
|
||||
.IP \fBk\fR
|
||||
Kick every body off.
|
||||
The
|
||||
.B k
|
||||
option
|
||||
does not actually halt the system, but leaves the
|
||||
system multi-user with logins disabled (for all but super-user).
|
||||
.IP \fBn\fR
|
||||
Prevent the normal
|
||||
.BR sync (2)
|
||||
before stopping.
|
||||
.IP \fBr\fR
|
||||
.BR Shutdown
|
||||
execs
|
||||
.BR reboot (8)
|
||||
at the specified
|
||||
.BR time .
|
||||
.IP \fItime\fR
|
||||
.BR Time
|
||||
is the time at which
|
||||
.BR shutdown
|
||||
will bring the system down and
|
||||
may be the word
|
||||
.BR now
|
||||
(indicating an immediate shutdown) or
|
||||
specify a future time in one of two formats:
|
||||
.BR +number ,
|
||||
or
|
||||
.BR yymmddhhmm ,
|
||||
where the year, month, and day may be defaulted
|
||||
to the current system values. The first form brings the system down in
|
||||
.BR number
|
||||
minutes and the second at the absolute time specified.
|
||||
.IP \fIwarning-message\fR
|
||||
Any other arguments comprise the warning message that is broadcast
|
||||
to users currently logged into the system.
|
||||
.IP \fB-\fR
|
||||
If
|
||||
.BR -
|
||||
is supplied as an option, the warning message is read from the standard
|
||||
input.
|
||||
.RE
|
||||
.LP
|
||||
At intervals, becoming more frequent as apocalypse approaches
|
||||
and starting at ten hours before shutdown, warning messages are displayed
|
||||
on the terminals of all users logged in. Five minutes before
|
||||
shutdown, or immediately if shutdown is in less than 5 minutes,
|
||||
logins are disabled by creating
|
||||
.B /etc/nologin
|
||||
and copying the
|
||||
warning message there. If this file exists when a user attempts to
|
||||
log in,
|
||||
.BR login (1)
|
||||
prints its contents and exits. The file is
|
||||
removed just before
|
||||
.BR shutdown
|
||||
exits.
|
||||
.LP
|
||||
At shutdown time a message is written in the system log, containing the
|
||||
time of shutdown, who initiated the shutdown and the reason.
|
||||
A terminate
|
||||
signal is then sent to
|
||||
.BR init
|
||||
to bring the system down to single-user state (depending on above
|
||||
options).
|
||||
The time of the shutdown and the warning message
|
||||
are placed in
|
||||
.B /etc/nologin
|
||||
and should be used to
|
||||
inform the users about when the system will be back up
|
||||
and why it is going down (or anything else).
|
||||
.SH FILES
|
||||
.IP \fB/etc/nologin\fR
|
||||
tells login not to let anyone log in
|
||||
.SH SEE ALSO
|
||||
.BR login (1),
|
||||
.BR wall (1),
|
||||
.BR halt (8),
|
||||
.BR reboot (8)
|
||||
.SH BACKWARD COMPATIBILITY
|
||||
The hours and minutes in the second time format may be separated by
|
||||
a colon (``:'') for backward compatibility.
|
||||
.SH HISTORY
|
||||
The
|
||||
.BR shutdown
|
||||
command appeared in 4.0BSD.
|
468
sbin/shutdown/shutdown.c
Normal file
468
sbin/shutdown/shutdown.c
Normal file
@ -0,0 +1,468 @@
|
||||
/*
|
||||
* Copyright (c) 1988, 1990, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifndef lint
|
||||
static char copyright[] =
|
||||
"@(#) Copyright (c) 1988, 1990, 1993\n\
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)shutdown.c 8.2 (Berkeley) 2/16/94";
|
||||
#endif /* not lint */
|
||||
|
||||
#include <sys/param.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/resource.h>
|
||||
#include <sys/syslog.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
#include <pwd.h>
|
||||
#include <setjmp.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "pathnames.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
#undef _PATH_NOLOGIN
|
||||
#define _PATH_NOLOGIN "./nologin"
|
||||
#endif
|
||||
|
||||
#define H *60*60
|
||||
#define M *60
|
||||
#define S *1
|
||||
#define NOLOG_TIME 5*60
|
||||
struct interval {
|
||||
int timeleft, timetowait;
|
||||
} tlist[] = {
|
||||
10 H, 5 H, 5 H, 3 H, 2 H, 1 H, 1 H, 30 M,
|
||||
30 M, 10 M, 20 M, 10 M, 10 M, 5 M, 5 M, 3 M,
|
||||
2 M, 1 M, 1 M, 30 S, 30 S, 30 S,
|
||||
0, 0,
|
||||
};
|
||||
#undef H
|
||||
#undef M
|
||||
#undef S
|
||||
|
||||
static time_t offset, shuttime;
|
||||
static int dohalt, doreboot, killflg, mbuflen;
|
||||
static char *nosync, *whom, mbuf[BUFSIZ];
|
||||
|
||||
void badtime __P((void));
|
||||
void die_you_gravy_sucking_pig_dog __P((void));
|
||||
void finish __P((int));
|
||||
void getoffset __P((char *));
|
||||
void loop __P((void));
|
||||
void nolog __P((void));
|
||||
void timeout __P((int));
|
||||
void timewarn __P((int));
|
||||
void usage __P((void));
|
||||
|
||||
int
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
extern int optind;
|
||||
register char *p, *endp;
|
||||
struct passwd *pw;
|
||||
int arglen, ch, len, readstdin;
|
||||
|
||||
#ifndef DEBUG
|
||||
if (geteuid()) {
|
||||
(void)fprintf(stderr, "shutdown: NOT super-user\n");
|
||||
exit(1);
|
||||
}
|
||||
#endif
|
||||
nosync = NULL;
|
||||
readstdin = 0;
|
||||
while ((ch = getopt(argc, argv, "-hknr")) != EOF)
|
||||
switch (ch) {
|
||||
case '-':
|
||||
readstdin = 1;
|
||||
break;
|
||||
case 'h':
|
||||
dohalt = 1;
|
||||
break;
|
||||
case 'k':
|
||||
killflg = 1;
|
||||
break;
|
||||
case 'n':
|
||||
nosync = "-n";
|
||||
break;
|
||||
case 'r':
|
||||
doreboot = 1;
|
||||
break;
|
||||
case '?':
|
||||
default:
|
||||
usage();
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
if (argc < 1)
|
||||
usage();
|
||||
|
||||
if (nosync) {
|
||||
(void)fprintf(stderr,
|
||||
"shutdown: incompatible switches -f and -n.\n");
|
||||
usage();
|
||||
}
|
||||
if (doreboot && dohalt) {
|
||||
(void)fprintf(stderr,
|
||||
"shutdown: incompatible switches -h and -r.\n");
|
||||
usage();
|
||||
}
|
||||
getoffset(*argv++);
|
||||
|
||||
if (*argv) {
|
||||
for (p = mbuf, len = sizeof(mbuf); *argv; ++argv) {
|
||||
arglen = strlen(*argv);
|
||||
if ((len -= arglen) <= 2)
|
||||
break;
|
||||
if (p != mbuf)
|
||||
*p++ = ' ';
|
||||
bcopy(*argv, p, arglen);
|
||||
p += arglen;
|
||||
}
|
||||
*p = '\n';
|
||||
*++p = '\0';
|
||||
}
|
||||
|
||||
if (readstdin) {
|
||||
p = mbuf;
|
||||
endp = mbuf + sizeof(mbuf) - 2;
|
||||
for (;;) {
|
||||
if (!fgets(p, endp - p + 1, stdin))
|
||||
break;
|
||||
for (; *p && p < endp; ++p);
|
||||
if (p == endp) {
|
||||
*p = '\n';
|
||||
*++p = '\0';
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
mbuflen = strlen(mbuf);
|
||||
|
||||
if (offset)
|
||||
(void)printf("Shutdown at %.24s.\n", ctime(&shuttime));
|
||||
else
|
||||
(void)printf("Shutdown NOW!\n");
|
||||
|
||||
if (!(whom = getlogin()))
|
||||
whom = (pw = getpwuid(getuid())) ? pw->pw_name : "???";
|
||||
|
||||
#ifdef DEBUG
|
||||
(void)putc('\n', stdout);
|
||||
#else
|
||||
(void)setpriority(PRIO_PROCESS, 0, PRIO_MIN);
|
||||
{
|
||||
int forkpid;
|
||||
|
||||
forkpid = fork();
|
||||
if (forkpid == -1) {
|
||||
perror("shutdown: fork");
|
||||
exit(1);
|
||||
}
|
||||
if (forkpid) {
|
||||
(void)printf("shutdown: [pid %d]\n", forkpid);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
openlog("shutdown", LOG_CONS, LOG_AUTH);
|
||||
loop();
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
void
|
||||
loop()
|
||||
{
|
||||
struct interval *tp;
|
||||
u_int sltime;
|
||||
int logged;
|
||||
|
||||
if (offset <= NOLOG_TIME) {
|
||||
logged = 1;
|
||||
nolog();
|
||||
}
|
||||
else
|
||||
logged = 0;
|
||||
tp = tlist;
|
||||
if (tp->timeleft < offset)
|
||||
(void)sleep((u_int)(offset - tp->timeleft));
|
||||
else {
|
||||
while (offset < tp->timeleft)
|
||||
++tp;
|
||||
/*
|
||||
* Warn now, if going to sleep more than a fifth of
|
||||
* the next wait time.
|
||||
*/
|
||||
if (sltime = offset - tp->timeleft) {
|
||||
if (sltime > tp->timetowait / 5)
|
||||
timewarn(offset);
|
||||
(void)sleep(sltime);
|
||||
}
|
||||
}
|
||||
for (;; ++tp) {
|
||||
timewarn(tp->timeleft);
|
||||
if (!logged && tp->timeleft <= NOLOG_TIME) {
|
||||
logged = 1;
|
||||
nolog();
|
||||
}
|
||||
(void)sleep((u_int)tp->timetowait);
|
||||
if (!tp->timeleft)
|
||||
break;
|
||||
}
|
||||
die_you_gravy_sucking_pig_dog();
|
||||
}
|
||||
|
||||
static jmp_buf alarmbuf;
|
||||
|
||||
void
|
||||
timewarn(timeleft)
|
||||
int timeleft;
|
||||
{
|
||||
static int first;
|
||||
static char hostname[MAXHOSTNAMELEN + 1];
|
||||
FILE *pf;
|
||||
char wcmd[MAXPATHLEN + 4];
|
||||
|
||||
if (!first++)
|
||||
(void)gethostname(hostname, sizeof(hostname));
|
||||
|
||||
/* undoc -n option to wall suppresses normal wall banner */
|
||||
(void)snprintf(wcmd, sizeof(wcmd), "%s -n", _PATH_WALL);
|
||||
if (!(pf = popen(wcmd, "w"))) {
|
||||
syslog(LOG_ERR, "shutdown: can't find %s: %m", _PATH_WALL);
|
||||
return;
|
||||
}
|
||||
|
||||
(void)fprintf(pf,
|
||||
"\007*** %sSystem shutdown message from %s@%s ***\007\n",
|
||||
timeleft ? "": "FINAL ", whom, hostname);
|
||||
|
||||
if (timeleft > 10*60)
|
||||
(void)fprintf(pf, "System going down at %5.5s\n\n",
|
||||
ctime(&shuttime) + 11);
|
||||
else if (timeleft > 59)
|
||||
(void)fprintf(pf, "System going down in %d minute%s\n\n",
|
||||
timeleft / 60, (timeleft > 60) ? "s" : "");
|
||||
else if (timeleft)
|
||||
(void)fprintf(pf, "System going down in 30 seconds\n\n");
|
||||
else
|
||||
(void)fprintf(pf, "System going down IMMEDIATELY\n\n");
|
||||
|
||||
if (mbuflen)
|
||||
(void)fwrite(mbuf, sizeof(*mbuf), mbuflen, pf);
|
||||
|
||||
/*
|
||||
* play some games, just in case wall doesn't come back
|
||||
* probably unecessary, given that wall is careful.
|
||||
*/
|
||||
if (!setjmp(alarmbuf)) {
|
||||
(void)signal(SIGALRM, timeout);
|
||||
(void)alarm((u_int)30);
|
||||
(void)pclose(pf);
|
||||
(void)alarm((u_int)0);
|
||||
(void)signal(SIGALRM, SIG_DFL);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
timeout(signo)
|
||||
int signo;
|
||||
{
|
||||
longjmp(alarmbuf, 1);
|
||||
}
|
||||
|
||||
void
|
||||
die_you_gravy_sucking_pig_dog()
|
||||
{
|
||||
|
||||
syslog(LOG_NOTICE, "%s by %s: %s",
|
||||
doreboot ? "reboot" : dohalt ? "halt" : "shutdown", whom, mbuf);
|
||||
(void)sleep(2);
|
||||
|
||||
(void)printf("\r\nSystem shutdown time has arrived\007\007\r\n");
|
||||
if (killflg) {
|
||||
(void)printf("\rbut you'll have to do it yourself\r\n");
|
||||
exit(0);
|
||||
}
|
||||
#ifdef DEBUG
|
||||
if (doreboot)
|
||||
(void)printf("reboot");
|
||||
else if (dohalt)
|
||||
(void)printf("halt");
|
||||
if (nosync)
|
||||
(void)printf(" no sync");
|
||||
(void)printf("\nkill -HUP 1\n");
|
||||
#else
|
||||
if (doreboot) {
|
||||
execle(_PATH_REBOOT, "reboot", "-l", nosync, 0);
|
||||
syslog(LOG_ERR, "shutdown: can't exec %s: %m.", _PATH_REBOOT);
|
||||
perror("shutdown");
|
||||
}
|
||||
else if (dohalt) {
|
||||
execle(_PATH_HALT, "halt", "-l", nosync, 0);
|
||||
syslog(LOG_ERR, "shutdown: can't exec %s: %m.", _PATH_HALT);
|
||||
perror("shutdown");
|
||||
}
|
||||
(void)kill(1, SIGTERM); /* to single user */
|
||||
#endif
|
||||
finish(0);
|
||||
}
|
||||
|
||||
#define ATOI2(p) (p[0] - '0') * 10 + (p[1] - '0'); p += 2;
|
||||
|
||||
void
|
||||
getoffset(timearg)
|
||||
register char *timearg;
|
||||
{
|
||||
register struct tm *lt;
|
||||
register char *p;
|
||||
time_t now;
|
||||
|
||||
if (!strcasecmp(timearg, "now")) { /* now */
|
||||
offset = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
(void)time(&now);
|
||||
if (*timearg == '+') { /* +minutes */
|
||||
if (!isdigit(*++timearg))
|
||||
badtime();
|
||||
offset = atoi(timearg) * 60;
|
||||
shuttime = now + offset;
|
||||
return;
|
||||
}
|
||||
|
||||
/* handle hh:mm by getting rid of the colon */
|
||||
for (p = timearg; *p; ++p)
|
||||
if (!isascii(*p) || !isdigit(*p))
|
||||
if (*p == ':' && strlen(p) == 3) {
|
||||
p[0] = p[1];
|
||||
p[1] = p[2];
|
||||
p[2] = '\0';
|
||||
}
|
||||
else
|
||||
badtime();
|
||||
|
||||
unsetenv("TZ"); /* OUR timezone */
|
||||
lt = localtime(&now); /* current time val */
|
||||
|
||||
switch(strlen(timearg)) {
|
||||
case 10:
|
||||
lt->tm_year = ATOI2(timearg);
|
||||
/* FALLTHROUGH */
|
||||
case 8:
|
||||
lt->tm_mon = ATOI2(timearg);
|
||||
if (--lt->tm_mon < 0 || lt->tm_mon > 11)
|
||||
badtime();
|
||||
/* FALLTHROUGH */
|
||||
case 6:
|
||||
lt->tm_mday = ATOI2(timearg);
|
||||
if (lt->tm_mday < 1 || lt->tm_mday > 31)
|
||||
badtime();
|
||||
/* FALLTHROUGH */
|
||||
case 4:
|
||||
lt->tm_hour = ATOI2(timearg);
|
||||
if (lt->tm_hour < 0 || lt->tm_hour > 23)
|
||||
badtime();
|
||||
lt->tm_min = ATOI2(timearg);
|
||||
if (lt->tm_min < 0 || lt->tm_min > 59)
|
||||
badtime();
|
||||
lt->tm_sec = 0;
|
||||
if ((shuttime = mktime(lt)) == -1)
|
||||
badtime();
|
||||
if ((offset = shuttime - now) < 0) {
|
||||
(void)fprintf(stderr,
|
||||
"shutdown: that time is already past.\n");
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
badtime();
|
||||
}
|
||||
}
|
||||
|
||||
#define NOMSG "\n\nNO LOGINS: System going down at "
|
||||
void
|
||||
nolog()
|
||||
{
|
||||
int logfd;
|
||||
char *ct;
|
||||
|
||||
(void)unlink(_PATH_NOLOGIN); /* in case linked to another file */
|
||||
(void)signal(SIGINT, finish);
|
||||
(void)signal(SIGHUP, finish);
|
||||
(void)signal(SIGQUIT, finish);
|
||||
(void)signal(SIGTERM, finish);
|
||||
if ((logfd = open(_PATH_NOLOGIN, O_WRONLY|O_CREAT|O_TRUNC,
|
||||
0664)) >= 0) {
|
||||
(void)write(logfd, NOMSG, sizeof(NOMSG) - 1);
|
||||
ct = ctime(&shuttime);
|
||||
(void)write(logfd, ct + 11, 5);
|
||||
(void)write(logfd, "\n\n", 2);
|
||||
(void)write(logfd, mbuf, strlen(mbuf));
|
||||
(void)close(logfd);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
finish(signo)
|
||||
int signo;
|
||||
{
|
||||
(void)unlink(_PATH_NOLOGIN);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
void
|
||||
badtime()
|
||||
{
|
||||
(void)fprintf(stderr, "shutdown: bad time format.\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
void
|
||||
usage()
|
||||
{
|
||||
fprintf(stderr, "usage: shutdown [-hknr] shutdowntime [ message ]\n");
|
||||
exit(1);
|
||||
}
|
9
usr.sbin/syslogd/Makefile
Normal file
9
usr.sbin/syslogd/Makefile
Normal file
@ -0,0 +1,9 @@
|
||||
# @(#)Makefile 8.1 (Berkeley) 6/6/93
|
||||
|
||||
PROG= syslogd
|
||||
SRCS= syslogd.c ttymsg.c
|
||||
.PATH: ${.CURDIR}/../../usr.bin/wall
|
||||
MAN5= syslog.conf.5
|
||||
MAN8= syslogd.8
|
||||
|
||||
.include <bsd.prog.mk>
|
40
usr.sbin/syslogd/pathnames.h
Normal file
40
usr.sbin/syslogd/pathnames.h
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 1989, 1993
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*
|
||||
* @(#)pathnames.h 8.1 (Berkeley) 6/6/93
|
||||
*/
|
||||
|
||||
#include <paths.h>
|
||||
|
||||
#define _PATH_KLOG "/dev/klog"
|
||||
#define _PATH_LOGCONF "/etc/syslog.conf"
|
||||
#define _PATH_LOGPID "/var/run/syslog.pid"
|
251
usr.sbin/syslogd/syslog.conf.5
Normal file
251
usr.sbin/syslogd/syslog.conf.5
Normal file
@ -0,0 +1,251 @@
|
||||
.\" Copyright (c) 1990, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)syslog.conf.5 8.1 (Berkeley) 6/9/93
|
||||
.\"
|
||||
.TH SYSLOG.CONF 5 "4 October 1997" GNO "File Formats"
|
||||
.SH NAME
|
||||
.BR syslog.conf \-
|
||||
.BR syslogd (8)
|
||||
configuration file
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.BR syslog.conf
|
||||
file is the configuration file for the
|
||||
.BR syslogd (8)
|
||||
program.
|
||||
It consists of
|
||||
blocks of lines separated by
|
||||
.IR program
|
||||
specifications,
|
||||
with each line containing two fields: the
|
||||
.IR selector
|
||||
field which specifies the types of messages and priorities to which the
|
||||
line applies, and an
|
||||
.IR action
|
||||
field which specifies the action to be taken if a message
|
||||
.BR syslogd
|
||||
receives matches the selection criteria.
|
||||
The
|
||||
.IR selector
|
||||
field is separated from the
|
||||
.IR action
|
||||
field by one or more tab characters.
|
||||
.LP
|
||||
The
|
||||
.IR Selectors
|
||||
function
|
||||
are encoded as a
|
||||
.IR facility ,
|
||||
a period (``.''), and a
|
||||
.IR level ,
|
||||
with no intervening white-space.
|
||||
Both the
|
||||
.IR facility
|
||||
and the
|
||||
.IR level
|
||||
are case insensitive.
|
||||
.LP
|
||||
The
|
||||
.IR facility
|
||||
describes the part of the system generating the message, and is one of
|
||||
the following keywords: auth, authpriv, cron, daemon, kern, lpr, mail,
|
||||
mark, news, syslog, user, uucp and local0 through local7.
|
||||
These keywords (with the exception of mark) correspond to the
|
||||
similar
|
||||
.B LOG_
|
||||
values specified to the
|
||||
.BR openlog (3)
|
||||
and
|
||||
.BR syslog (3)
|
||||
library routines.
|
||||
.LP
|
||||
The
|
||||
.IR level
|
||||
describes the severity of the message, and is a keyword from the
|
||||
following ordered list (higher to lower): emerg, alert, crit, err,
|
||||
warning, notice and debug.
|
||||
These keywords correspond to the
|
||||
similar
|
||||
.B LOG_
|
||||
values specified to the
|
||||
.BR syslog
|
||||
library routine.
|
||||
.LP
|
||||
Each block of lines is separated from the previous block by a tag. The tag
|
||||
is a line beginning with
|
||||
.IR #!prog
|
||||
or
|
||||
.IR !prog
|
||||
(the former is for compatibility with the previous syslogd, if one is sharing
|
||||
syslog.conf files, for example)
|
||||
and each block will be associated with calls to syslog from that specific
|
||||
program.
|
||||
.LP
|
||||
See
|
||||
.BR syslog (3)
|
||||
for a further descriptions of both the
|
||||
.IR facility
|
||||
and
|
||||
.IR level
|
||||
keywords and their significance. It's preferred that selections be made on
|
||||
.IR facility
|
||||
rather than
|
||||
.IR program ,
|
||||
since the latter can easily vary in a networked environment. In some cases,
|
||||
though, an appropriate
|
||||
.IR facility
|
||||
simply doesn't exist (for example,
|
||||
.IR ftpd
|
||||
logs under LOG_DAEMON along with a myriad other programs).
|
||||
.LP
|
||||
If a received message matches the specified
|
||||
.IR facility
|
||||
and is of the specified
|
||||
.IR level
|
||||
.IR (or "a higher level) ,"
|
||||
and the first word in the message after the date matches the
|
||||
.IR program ,
|
||||
the action specified in the
|
||||
.IR action
|
||||
field will be taken.
|
||||
.LP
|
||||
Multiple
|
||||
.IR selectors
|
||||
may be specified for a single
|
||||
.IR action
|
||||
by separating them with semicolon (``;'') characters.
|
||||
It is important to note, however, that each
|
||||
.IR selector
|
||||
can modify the ones preceding it.
|
||||
.LP
|
||||
Multiple
|
||||
.IR facilities
|
||||
may be specified for a single
|
||||
.IR level
|
||||
by separating them with comma (``,'') characters.
|
||||
.LP
|
||||
An asterisk (``*'') can be used to specify all
|
||||
.IR facilities
|
||||
all
|
||||
.IR levels
|
||||
or all
|
||||
.IR programs .
|
||||
.LP
|
||||
The special
|
||||
.IR facility
|
||||
``mark'' receives a message at priority ``info'' every 20 minutes
|
||||
(see
|
||||
.BR syslogd (8)).
|
||||
This is not enabled by a
|
||||
.IR facility
|
||||
field containing an asterisk.
|
||||
.LP
|
||||
The special
|
||||
.IR level
|
||||
``none'' disables a particular
|
||||
.IR facility .
|
||||
.LP
|
||||
The
|
||||
.IR action
|
||||
field of each line specifies the action to be taken when the
|
||||
.IR selector
|
||||
field selects a message.
|
||||
There are four forms:
|
||||
.RS
|
||||
A pathname (beginning with a leading slash).
|
||||
Selected messages are appended to the file.
|
||||
.LP
|
||||
A hostname (preceded by an at (``@'') sign).
|
||||
Selected messages are forwarded to the
|
||||
.BR syslogd
|
||||
program on the named host.
|
||||
.LP
|
||||
A comma separated list of users.
|
||||
Selected messages are written to those users
|
||||
if they are logged in.
|
||||
.LP
|
||||
An asterisk.
|
||||
Selected messages are written to all logged-in users.
|
||||
.RE
|
||||
.LP
|
||||
Blank lines and lines whose first non-blank character is a hash (``#'')
|
||||
character are ignored.
|
||||
.SH EXAMPLES
|
||||
.LP
|
||||
A configuration file might appear as follows:
|
||||
.nf
|
||||
# Log all kernel messages, authentication messages of
|
||||
# level notice or higher and anything of level err or
|
||||
# higher to the console.
|
||||
# Don't log private authentication messages!
|
||||
*.err;kern.*;auth.notice;authpriv.none /dev/console
|
||||
|
||||
# Log anything (except mail) of level info or higher.
|
||||
# Don't log private authentication messages!
|
||||
*.info;mail.none;authpriv.none /var/log/messages
|
||||
|
||||
# The authpriv file has restricted access.
|
||||
authpriv.* /var/log/secure
|
||||
|
||||
# Log all the mail messages in one place.
|
||||
mail.* /var/log/maillog
|
||||
|
||||
# Everybody gets emergency messages, plus log them on another
|
||||
# machine.
|
||||
*.emerg *
|
||||
*.emerg @arpa.berkeley.edu
|
||||
|
||||
# Root and Eric get alert and higher messages.
|
||||
*.alert root,eric
|
||||
|
||||
# Save mail and news errors of level err and higher in a
|
||||
# special file.
|
||||
uucp,news.crit /var/log/spoolerr
|
||||
|
||||
# Save ftpd transactions along with mail and news
|
||||
!ftpd
|
||||
*.* /var/log/spoolerr
|
||||
.fi
|
||||
.SH FILES
|
||||
.RS
|
||||
.IP \fB/etc/syslog.conf\fR
|
||||
The
|
||||
.BR syslogd (8)
|
||||
configuration file.
|
||||
.RE
|
||||
.SH BUGS
|
||||
The effects of multiple selectors are sometimes not intuitive.
|
||||
For example ``mail.crit,*.err'' will select ``mail'' facility messages at
|
||||
the level of ``err'' or higher, not at the level of ``crit'' or higher.
|
||||
.SH SEE ALSO
|
||||
.BR syslog (3),
|
||||
.BR syslogd (8)
|
127
usr.sbin/syslogd/syslogd.8
Normal file
127
usr.sbin/syslogd/syslogd.8
Normal file
@ -0,0 +1,127 @@
|
||||
.\" Copyright (c) 1983, 1986, 1991, 1993
|
||||
.\" The Regents of the University of California. All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. All advertising materials mentioning features or use of this software
|
||||
.\" must display the following acknowledgement:
|
||||
.\" This product includes software developed by the University of
|
||||
.\" California, Berkeley and its contributors.
|
||||
.\" 4. Neither the name of the University nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" @(#)syslogd.8 8.1 (Berkeley) 6/6/93
|
||||
.\"
|
||||
.TH SYSLOGD 8 "4 October 1997" GNO "System Administration"
|
||||
.SH NAME
|
||||
.BR syslogd
|
||||
\- log systems messages
|
||||
.SH SYNOPSIS
|
||||
.BR syslogd
|
||||
[
|
||||
.BR -f
|
||||
.I config_file
|
||||
] [
|
||||
.BR -m
|
||||
.I mark_interval
|
||||
] [
|
||||
.BR -p
|
||||
.I log_socket
|
||||
]
|
||||
.SH DESCRIPTION
|
||||
.BR Syslogd
|
||||
reads and logs messages to the system console, log files, other
|
||||
machines and/or users as specified by its configuration file.
|
||||
The options are as follows:
|
||||
.RS
|
||||
.IP \fB-f\fR
|
||||
Specify the pathname of an alternate configuration file;
|
||||
the default is
|
||||
.BR /etc/syslog.conf .
|
||||
.IP \fB-m\fR
|
||||
Select the number of minutes between ``mark'' messages;
|
||||
the default is 20 minutes.
|
||||
.IP \fB-p\fR
|
||||
Specify the pathname of an alternate log socket;
|
||||
the default is
|
||||
.BR /dev/log .
|
||||
.RE
|
||||
.LP
|
||||
.BR Syslogd
|
||||
reads its configuration file when it starts up and whenever it
|
||||
receives a hangup signal.
|
||||
For information on the format of the configuration file,
|
||||
see
|
||||
.BR syslog.conf (5).
|
||||
.LP
|
||||
.BR Syslogd
|
||||
reads messages from the
|
||||
.B UNIX
|
||||
domain socket
|
||||
.BR /dev/log ,
|
||||
from an Internet domain socket specified in
|
||||
.BR /etc/services ,
|
||||
and from the special device
|
||||
.BR /dev/klog
|
||||
(to read kernel messages).
|
||||
.LP
|
||||
.BR Syslogd
|
||||
creates the file
|
||||
.BR /var/run/syslog.pid ,
|
||||
and stores its process
|
||||
id there.
|
||||
This can be used to kill or reconfigure
|
||||
.BR syslogd .
|
||||
.LP
|
||||
The message sent to
|
||||
.BR syslogd
|
||||
should consist of a single line.
|
||||
The message can contain a priority code, which should be a preceding
|
||||
decimal number in angle braces, for example,
|
||||
.BR 5 .
|
||||
This priority code should map into the priorities defined in the
|
||||
include file
|
||||
.BR <sys/syslog.h> .
|
||||
.SH FILES
|
||||
.RS
|
||||
.IP \fB/etc/syslog.conf\fR
|
||||
The configuration file.
|
||||
.IP \fB/var/run/syslog.pid\fR
|
||||
The process id of current
|
||||
.BR syslogd .
|
||||
.IP \fB/dev/log\fR
|
||||
Name of the
|
||||
.B UNIX
|
||||
domain datagram log socket.
|
||||
.IP \fB/dev/klog\fR
|
||||
The kernel log device.
|
||||
.RE
|
||||
.SH SEE ALSO
|
||||
.BR logger (1),
|
||||
.BR syslog (3),
|
||||
.BR services (5),
|
||||
.BR syslog.conf (5)
|
||||
.SH HISTORY
|
||||
The
|
||||
.BR syslogd
|
||||
command appeared in
|
||||
BSD 4.3.
|
1194
usr.sbin/syslogd/syslogd.c
Normal file
1194
usr.sbin/syslogd/syslogd.c
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user