old-www/LDP/sag/html/config-init.html

387 lines
5.8 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML
><HEAD
><TITLE
>Configuring init to start
getty: the
/etc/inittab file</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK
REL="HOME"
TITLE="Linux System Administrators Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="init"
HREF="init-intro.html"><LINK
REL="PREVIOUS"
TITLE="init comes first"
HREF="init-process.html"><LINK
REL="NEXT"
TITLE="Run levels"
HREF="run-levels-intro.html"></HEAD
><BODY
CLASS="SECT1"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Linux System Administrators Guide: </TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="init-process.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Chapter 9. <B
CLASS="COMMAND"
>init</B
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="run-levels-intro.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="CONFIG-INIT"
></A
>9.2. Configuring <B
CLASS="COMMAND"
>init</B
> to start
<B
CLASS="COMMAND"
>getty</B
>: the
<TT
CLASS="FILENAME"
>/etc/inittab</TT
> file</H1
><P
>When it starts up, <B
CLASS="COMMAND"
>init</B
> reads the
<TT
CLASS="FILENAME"
>/etc/inittab</TT
>
configuration file. While the system is running, it will
re-read it, if sent the HUP signal (<B
CLASS="COMMAND"
>kill -HUP 1</B
>);
this feature makes it unnecessary to boot the system to make
changes to the <B
CLASS="COMMAND"
>init</B
> configuration take
effect.</P
><P
>The <TT
CLASS="FILENAME"
>/etc/inittab</TT
> file is
a bit complicated. We'll start with the simple case
of configuring <B
CLASS="COMMAND"
>getty</B
> lines. Lines in
<TT
CLASS="FILENAME"
>/etc/inittab</TT
> consist of four colon-delimited
fields:
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>id:runlevels:action:process</PRE
></FONT
></TD
></TR
></TABLE
>
The fields are described below. In addition,
<TT
CLASS="FILENAME"
>/etc/inittab</TT
> can contain empty lines, and
lines that begin with a number sign (`<TT
CLASS="LITERAL"
>#</TT
>');
these are both ignored.
<DIV
CLASS="GLOSSLIST"
><DL
><DT
><B
>id</B
></DT
><DD
><P
> This identifies the line in the file. For
<B
CLASS="COMMAND"
>getty</B
> lines, it specifies the terminal
it runs on (the characters after <TT
CLASS="FILENAME"
>/dev/tty</TT
>
in the device file name). For other lines,
it doesn't matter (except for length restrictions),
but it should be unique.
</P
></DD
><DT
><B
>runlevels</B
></DT
><DD
><P
> The run levels the line should be considered
for. The run levels are given as single digits,
without delimiters. (Run levels are described
in the next section.)
</P
></DD
><DT
><B
>action</B
></DT
><DD
><P
> What action should be taken by the line, e.g.,
<TT
CLASS="LITERAL"
>respawn</TT
> to run the command in the
next field again, when it exits, or <TT
CLASS="LITERAL"
>once</TT
>
to run it just once.
</P
></DD
><DT
><B
>process</B
></DT
><DD
><P
> The command to run.
</P
></DD
></DL
></DIV
>
To start a <B
CLASS="COMMAND"
>getty</B
> on the first virtual terminal
(<TT
CLASS="FILENAME"
>/dev/tty1</TT
>), in all the normal multi-user
run levels (2-5), one would write the following line:
<TABLE
BORDER="1"
BGCOLOR="#E0E0E0"
WIDTH="100%"
><TR
><TD
><FONT
COLOR="#000000"
><PRE
CLASS="SCREEN"
>1:2345:respawn:/sbin/getty 9600 tty1</PRE
></FONT
></TD
></TR
></TABLE
>
The first field says that this is the line for
<TT
CLASS="FILENAME"
>/dev/tty1</TT
>.
The second field says that it applies to run levels 2, 3, 4,
and 5. The third field means that the command should be run
again, after it exits (so that one can log in, log out, and
then log in again). The last field is the command that runs
<B
CLASS="COMMAND"
>getty</B
> on the first virtual terminal.</P
><P
>Different versions of <B
CLASS="COMMAND"
>getty</B
> are run
differently. Consult your manual page, and make sure it is
the correct manual page.</P
><P
>If you wanted to add terminals or dial-in modem lines to a
system, you'd add more lines to <TT
CLASS="FILENAME"
>/etc/inittab</TT
>,
one for each terminal or dial-in line. For more details, see the
manual pages <B
CLASS="COMMAND"
>init</B
>, <TT
CLASS="FILENAME"
>inittab</TT
>,
and <B
CLASS="COMMAND"
>getty</B
>.</P
><P
>If a command fails when it starts,
and <B
CLASS="COMMAND"
>init</B
> is configured to
<TT
CLASS="LITERAL"
>restart</TT
> it, it will use a lot of
system resources: <B
CLASS="COMMAND"
>init</B
> starts it,
it fails, <B
CLASS="COMMAND"
>init</B
> starts it, it fails,
<B
CLASS="COMMAND"
>init</B
> starts it, it fails, and so on, ad
infinitum. To prevent this, <B
CLASS="COMMAND"
>init</B
> will keep
track of how often it restarts a command, and if the frequency
grows to high, it will delay for five minutes before restarting
again. </P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="init-process.html"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="run-levels-intro.html"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><B
CLASS="COMMAND"
>init</B
> comes first</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="init-intro.html"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Run levels</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>