aboutsummaryrefslogtreecommitdiff
path: root/en_US.ISO8859-1/books/handbook/basics
diff options
context:
space:
mode:
authorDru Lavigne <dru@FreeBSD.org>2013-10-22 18:58:12 +0000
committerDru Lavigne <dru@FreeBSD.org>2013-10-22 18:58:12 +0000
commit0abcd2e1b8c29d391de44a9fc5f3c1412f12cb66 (patch)
treef996015a3cc9557df87f98b96ef94b9d02d24ee9 /en_US.ISO8859-1/books/handbook/basics
parente8f0fbe2d63402f24770f7b27cdcf3bb8bd01c32 (diff)
downloaddoc-0abcd2e1b8c29d391de44a9fc5f3c1412f12cb66.tar.gz
doc-0abcd2e1b8c29d391de44a9fc5f3c1412f12cb66.zip
Combine "Processes" and "Daemons, Signals, and Killing Processes" into one section entitled "Processes and Daemons"
- introduce daemons and processes in same introductory section - add headings for viewing processes and for killing processes - update listings To be followed by a white space fix.
Notes
Notes: svn path=/head/; revision=43021
Diffstat (limited to 'en_US.ISO8859-1/books/handbook/basics')
-rw-r--r--en_US.ISO8859-1/books/handbook/basics/chapter.xml164
1 files changed, 80 insertions, 84 deletions
diff --git a/en_US.ISO8859-1/books/handbook/basics/chapter.xml b/en_US.ISO8859-1/books/handbook/basics/chapter.xml
index 54a2ada195..57f82d6533 100644
--- a/en_US.ISO8859-1/books/handbook/basics/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/basics/chapter.xml
@@ -2859,7 +2859,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</sect1>
<sect1 id="basics-processes">
- <title>Processes</title>
+ <title>Processes and Daemons</title>
<para>&os; is a multi-tasking operating system. Each program
running at any one time is called a
@@ -2877,9 +2877,33 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
process which has the shell as its parent process. The
exception is a special process called &man.init.8; which is
always the first process to start at boot time and which always
- has a <acronym>PID</acronym> of 1.</para>
+ has a <acronym>PID</acronym> of <literal>1</literal>.</para>
- <para>To see the processes on the system, use &man.ps.1; and
+ <para>Some programs are not designed
+ to be run with continuous user input and disconnect from the
+ terminal at the first opportunity. For example, a web server
+ responds to web requests, rather than user input. Mail servers
+ are another example of this type of application. These types of
+ programs are known as <firstterm>daemons</firstterm>.
+ The term daemon comes from Greek mythology and represents an
+ entity that is neither good nor evil, and which invisibly
+ performs useful tasks. This is why the BSD mascot is the
+ cheerful-looking daemon with sneakers and a pitchfork.</para>
+
+ <para>There is a convention to name programs that normally run as
+ daemons with a trailing <quote>d</quote>. For example,
+ <application>BIND</application> is the Berkeley Internet Name
+ Domain, but the actual program that executes is <command>named</command>.
+ The <application>Apache</application> web server program is
+ <command>httpd</command> and the line printer spooling daemon
+ is <command>lpd</command>. This is only a naming convention. For example,
+ the main mail daemon for the <application>Sendmail</application>
+ application is <command>sendmail</command>, and not
+ <literal>maild</literal>.</para>
+ <sect2>
+ <title>Viewing Processes</title>
+
+ <para>To see the processes running on the system, use &man.ps.1; or
&man.top.1;. To display a static list of the currently running
processes, their <acronym>PID</acronym>s, how much memory they
are using, and the command they were started with, use
@@ -2891,21 +2915,9 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
running and owned by the user. For example:</para>
<screen>&prompt.user; <userinput>ps</userinput>
- PID TT STAT TIME COMMAND
- 298 p0 Ss 0:01.10 tcsh
- 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
-37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
-72210 p0 R+ 0:00.00 ps
- 390 p1 Is 0:01.14 tcsh
- 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
- 6688 p3 IWs 0:00.00 tcsh
-10735 p4 IWs 0:00.00 tcsh
-20256 p5 IWs 0:00.00 tcsh
- 262 v0 IWs 0:00.00 -tcsh (tcsh)
- 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
- 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
- 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
- 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen>
+ PID TT STAT TIME COMMAND
+8203 0 Ss 0:00.59 /bin/csh
+8895 0 R+ 0:00.00 ps</screen>
<para>The output from &man.ps.1; is organized into a number of
columns. The <literal>PID</literal> column displays the process
@@ -2922,19 +2934,18 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<literal>COMMAND</literal> is the command that was used to start
the program.</para>
- <para>&man.ps.1; supports a number of different options to change
+ <para>A number of different options are available to change
the information that is displayed. One of the most useful sets
- is <literal>auxww</literal>. <option>a</option> displays
- information about all the running processes of all users.
- <option>u</option> displays the username of the process' owner,
- as well as memory usage. <option>x</option> displays
+ is <literal>auxww</literal>, where <option>a</option> displays
+ information about all the running processes of all users,
+ <option>u</option> displays the username and memory usage of the process' owner,
+ <option>x</option> displays
information about daemon processes, and <option>ww</option>
causes &man.ps.1; to display the full command line for each
process, rather than truncating it once it gets too long to fit
on the screen.</para>
- <para>The output from &man.top.1; is similar. A sample session
- looks like this:</para>
+ <para>The output from &man.top.1; is similar:</para>
<screen>&prompt.user; <userinput>top</userinput>
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
@@ -2943,23 +2954,38 @@ CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
- PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
-72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
- 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
- 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
- 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
- 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
- 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
-...</screen>
+last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46
+107 processes: 2 running, 104 sleeping, 1 zombie
+CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle
+Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free
+ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other
+Swap: 2048M Total, 2048M Free
+
+ PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
+ 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg
+ 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4
+ 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox
+ 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused
+ 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top
+ 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4
+ 8705 dru 4 35 0 480M 98M select 2 0:20 0.00% kdeinit4
+ 8076 dru 6 20 0 552M 113M uwait 0 0:12 0.00% soffice.bin
+ 2623 root 1 30 10 12088K 1636K select 3 0:09 0.00% powerd
+ 2338 dru 1 20 0 440M 84532K select 1 0:06 0.00% kwin
+ 1427 dru 5 22 0 605M 86412K select 1 0:05 0.00% kdeinit4</screen>
<para>The output is split into two sections. The header (the
- first five lines) shows the <acronym>PID</acronym> of the last
+ first five or six lines) shows the <acronym>PID</acronym> of the last
process to run, the system load averages (which are a measure
of how busy the system is), the system uptime (time since the
last reboot) and the current time. The other figures in the
- header relate to how many processes are running (47 in this
- case), how much memory and swap space has been used, and how
- much time the system is spending in different CPU states.</para>
+ header relate to how many processes are running,
+ how much memory and swap space has been used, and how
+ much time the system is spending in different CPU states. If
+ the system has been formatted with the <acronym>ZFS</acronym>
+ file system, the <literal>ARC</literal> line provides an
+ indication of how much data was read from the memory cache
+ instead of from disk.</para>
<para>Below the header is a series of columns containing similar
information to the output from &man.ps.1;, such as the
@@ -2969,46 +2995,18 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
This is split into two columns: one for total size and one for
resident size. Total size is how much memory the application
has needed and the resident size is how much it is actually
- using at the moment. In this example,
- <application>mutt</application> has required almost 8&nbsp;MB
- of RAM, but is currently only using 5&nbsp;MB.</para>
+ using now.</para>
<para>&man.top.1; automatically updates the display every two
seconds. A different interval can be specified with
<option>-s</option>.</para>
- </sect1>
-
- <sect1 id="basics-daemons">
- <title>Daemons, Signals, and Killing Processes</title>
-
- <para>When using an editor, it is easy to control the editor and
- load files because the editor provides facilities to do so, and
- because the editor is attached to a
- <firstterm>terminal</firstterm>. Some programs are not designed
- to be run with continuous user input and disconnect from the
- terminal at the first opportunity. For example, a web server
- responds to web requests, rather than user input. Mail servers
- are another example of this type of application.</para>
-
- <para>These programs are known as <firstterm>daemons</firstterm>.
- The term daemon comes from Greek mythology and represents an
- entity that is neither good or evil, and which invisibly
- performs useful tasks. This is why the BSD mascot is the
- cheerful-looking daemon with sneakers and a pitchfork.</para>
+ </sect2>
- <para>There is a convention to name programs that normally run as
- daemons with a trailing <quote>d</quote>.
- <application>BIND</application> is the Berkeley Internet Name
- Domain, but the actual program that executes is &man.named.8;.
- The <application>Apache</application> web server program is
- <command>httpd</command> and the line printer spooling daemon
- is &man.lpd.8;. This is only a naming convention. For example,
- the main mail daemon for the <application>Sendmail</application>
- application is &man.sendmail.8;, and not
- <literal>maild</literal>.</para>
+ <sect2 id="basics-daemons">
+ <title>Killing Processes</title>
- <para>One way to communicate with a daemon, or any running
- process, is to send a <firstterm>signal</firstterm> using
+ <para>One way to communicate with any running
+ process or daemon is to send a <firstterm>signal</firstterm> using
&man.kill.1;. There are a number of different signals; some
have a specific meaning while others are described in the
application's documentation. A user can only send a signal to a
@@ -3017,13 +3015,13 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<username>root</username> user, who can send signals to anyone's
processes.</para>
- <para>&os; can also send a signal to a process. If an application
+ <para>The operating system can also send a signal to a process. If an application
is badly written and tries to access memory that it is not
supposed to, &os; will send the process the
- <firstterm>Segmentation Violation</firstterm> signal
- (<literal>SIGSEGV</literal>). If an application has used the
+ <quote>Segmentation Violation</quote> signal
+ (<literal>SIGSEGV</literal>). If an application has been written to use the
&man.alarm.3; system call to be alerted after a period of time
- has elapsed, it will be sent the Alarm signal
+ has elapsed, it will be sent the <quote>Alarm</quote> signal
(<literal>SIGALRM</literal>).</para>
<para>Two signals can be used to stop a process:
@@ -3036,8 +3034,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
that can not be interrupted.</para>
<para><literal>SIGKILL</literal> can not be ignored by a process.
- This is the <quote>I do not care what you are doing, stop right
- now</quote> signal. Sending a <literal>SIGKILL</literal> to a
+ Sending a <literal>SIGKILL</literal> to a
process will usually stop that process there and then.<footnote>
<para>There are a few tasks that can not be interrupted. For
example, if the process is trying to read from a file that
@@ -3050,7 +3047,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>Other commonly used signals are <literal>SIGHUP</literal>,
<literal>SIGUSR1</literal>, and <literal>SIGUSR2</literal>.
- These are general purpose signals and different applications
+ Since these are general purpose signals, different applications
will respond differently.</para>
<para>For example, after changing a web server's configuration
@@ -3112,19 +3109,17 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<filename>/bin/kill</filename>. Be aware that different
shells have a different syntax for specifying the name of
the signal to send. Rather than try to learn all of them,
- it can be simpler to use <command>/bin/kill
- <replaceable>...</replaceable></command>
- directly.</para>
+ it can be simpler to specify <command>/bin/kill</command>.</para>
</note>
</step>
</procedure>
<para>When sending other signals, substitute
- <literal>TERM</literal> or <literal>KILL</literal> in the
- command line as necessary.</para>
+ <literal>TERM</literal> or <literal>KILL</literal> with the name
+ of the signal.</para>
<important>
- <para>Killing a random process on the system can be a bad idea.
+ <para>Killing a random process on the system is a bad idea.
In particular, &man.init.8;, <acronym>PID</acronym> 1, is
special. Running <command>/bin/kill -s KILL 1</command> is
a quick, and unrecommended, way to shutdown the system.
@@ -3132,6 +3127,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
&man.kill.1; <emphasis>before</emphasis> pressing
<keycap>Return</keycap>.</para>
</important>
+ </sect2>
</sect1>
<sect1 id="shells">