Update to r43021:

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
This commit is contained in:
Bjoern Heidotting 2016-03-01 14:53:59 +00:00
parent e58bdb5594
commit e31be0eec7
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48305

View file

@ -5,7 +5,7 @@
$FreeBSD$ $FreeBSD$
$FreeBSDde$ $FreeBSDde$
basiert auf: r42953 basiert auf: r43021
--> -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics"> <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="basics">
<title>Grundlagen des UNIX Betriebssystems</title> <title>Grundlagen des UNIX Betriebssystems</title>
@ -3002,7 +3002,7 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
</sect1> </sect1>
<sect1 xml:id="basics-processes"> <sect1 xml:id="basics-processes">
<title>Prozesse</title> <title>Prozesse und Dämonen</title>
<para>&os; ist ein Multitasking-Betriebssystem. Jedes <para>&os; ist ein Multitasking-Betriebssystem. Jedes
Programm, das zu irgendeiner Zeit läuft wird als Programm, das zu irgendeiner Zeit läuft wird als
@ -3022,7 +3022,33 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
als Elternprozess besitzt. Die Ausnahme hiervon ist ein als Elternprozess besitzt. Die Ausnahme hiervon ist ein
spezieller Prozess namens &man.init.8;, der beim booten immer spezieller Prozess namens &man.init.8;, der beim booten immer
als erstes gestartet wird und der immer die als erstes gestartet wird und der immer die
<acronym>PID</acronym> 1 hat.</para> <acronym>PID</acronym> <literal>1</literal> hat.</para>
<para>Manche Programme erwarten keine Eingaben vom Benutzer und
lösen sich bei erster Gelegenheit von ihrem Terminal. Ein
Webserver zum Beispiel antwortet auf Web-Anfragen und nicht auf
Benutzereingaben. Mail-Server sind ein weiteres Beispiel für
diesen Typ von Anwendungen. Diese Programme sind als
<firstterm>Dämonen</firstterm> bekannt. Der Begriff Dämon
stammt aus der griechischen Mythologie und bezeichnet ein Wesen,
das weder gut noch böse ist und welches unsichtbar nützliche
Aufgaben verrichtet. Deshalb ist das BSD Maskottchen dieser
fröhlich aussehende Dämon mit Turnschuhen und Dreizack.</para>
<para>Programme, die als Dämon laufen, werden entsprechend einer
Konvention mit einem <quote>d</quote> am Ende benannt.
<application>BIND</application> steht beispielsweise für
Berkeley Internet Name Domain, das tatsächlich laufende Programm
heißt aber <command>named</command>. Der
<application>Apache</application> Webserver wird
<command>httpd</command> genannt und der Druckerspool-Dämon
heißt &man.lpd.8;. Dies ist allerdings nur eine Konvention.
Der Dämon der Anwendung <application>Sendmail</application>
heißt beispielsweise <command>sendmail</command> und nicht
<literal>maild</literal>.</para>
<sect2>
<title>Prozesse beobachten</title>
<para>Um die Prozesse auf dem System zu sehen, benutzen Sie <para>Um die Prozesse auf dem System zu sehen, benutzen Sie
&man.ps.1; und &man.top.1;. Eine statische Liste der laufenden &man.ps.1; und &man.top.1;. Eine statische Liste der laufenden
@ -3037,21 +3063,9 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
Prozesse, die dem Benutzer gehören. Zum Beispiel:</para> Prozesse, die dem Benutzer gehören. Zum Beispiel:</para>
<screen>&prompt.user; <userinput>ps</userinput> <screen>&prompt.user; <userinput>ps</userinput>
PID TT STAT TIME COMMAND PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh 8203 0 Ss 0:00.59 /bin/csh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14) 8895 0 R+ 0:00.00 ps</screen>
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>
<para>Die Ausgabe von &man.ps.1; ist in einer Anzahl von Spalten <para>Die Ausgabe von &man.ps.1; ist in einer Anzahl von Spalten
organisiert. Die <literal>PID</literal> Spalte zeigt die organisiert. Die <literal>PID</literal> Spalte zeigt die
@ -3084,20 +3098,25 @@ root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
<para>Die Ausgabe von &man.top.1; sieht ähnlich aus:</para> <para>Die Ausgabe von &man.top.1; sieht ähnlich aus:</para>
<screen>&prompt.user; <userinput>top</userinput> <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 last pid: 9609; load averages: 0.56, 0.45, 0.36 up 0+00:20:03 10:21:46
47 processes: 1 running, 46 sleeping 107 processes: 2 running, 104 sleeping, 1 zombie
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle CPU: 6.2% user, 0.1% nice, 8.2% system, 0.4% interrupt, 85.1% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free Mem: 541M Active, 450M Inact, 1333M Wired, 4064K Cache, 1498M Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse ARC: 992M Total, 377M MFU, 589M MRU, 250K Anon, 5280K Header, 21M Other
Swap: 2048M Total, 2048M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top 557 root 1 -21 r31 136M 42296K select 0 2:20 9.96% Xorg
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14 8198 dru 2 52 0 449M 82736K select 3 0:08 5.96% kdeinit4
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA 8311 dru 27 30 0 1150M 187M uwait 1 1:37 0.98% firefox
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm 431 root 1 20 0 14268K 1728K select 0 0:06 0.98% moused
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd 9551 dru 1 21 0 16600K 2660K CPU3 3 0:01 0.98% top
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt 2357 dru 4 37 0 718M 141M select 0 0:21 0.00% kdeinit4
...</screen> 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>Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten <para>Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten
fünf Kopfzeilen finden sich die zuletzt zugeteilte fünf Kopfzeilen finden sich die zuletzt zugeteilte
@ -3105,9 +3124,12 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
(engl. <foreignphrase>load average</foreignphrase>), die (engl. <foreignphrase>load average</foreignphrase>), die
Systemlaufzeit (die Zeit seit dem letzten Reboot) und die Systemlaufzeit (die Zeit seit dem letzten Reboot) und die
momentane Zeit. Die weiteren Zahlen im Kopf beschreiben wie momentane Zeit. Die weiteren Zahlen im Kopf beschreiben wie
viele Prozesse momentan laufen (im Beispiel 47), wie viel viele Prozesse momentan laufen, wie viel
Speicher und Swap verbraucht wurde und wie viel Zeit das System Speicher und Swap verbraucht wurde und wie viel Zeit das System
in den verschiedenen CPU-Modi verbringt.</para> in den verschiedenen CPU-Modi verbringt. Wenn das System mit
dem <acronym>ZFS</acronym>-Dateisystem formatiert wurde, dann
liefert die Zeile <literal>ARC</literal> Informationen, wie
viele Daten aus dem Cache gelesen wurden.</para>
<para>Darunter befinden sich einige Spalten mit ähnlichen <para>Darunter befinden sich einige Spalten mit ähnlichen
Informationen wie in der Ausgabe von &man.ps.1;, Informationen wie in der Ausgabe von &man.ps.1;,
@ -3116,47 +3138,17 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
hat. &man.top.1; zeigt in zwei Spalten den Speicherverbrauch hat. &man.top.1; zeigt in zwei Spalten den Speicherverbrauch
des Prozesses an. Die erste Spalte gibt des Prozesses an. Die erste Spalte gibt
den gesamten Speicherverbrauch des Prozesses an, in der zweiten den gesamten Speicherverbrauch des Prozesses an, in der zweiten
Spalte wird der aktuelle Verbrauch angegeben. Spalte wird der aktuelle Verbrauch angegeben.</para>
<application>mutt</application> hat im gezeigten Beispiel
insgesamt 8&nbsp;MB Speicher verbraucht. Momentan benutzt
es allerdings nur 5&nbsp;MB.</para>
<para>Die Anzeige wird von &man.top.1; automatisch alle zwei <para>Die Anzeige wird von &man.top.1; automatisch alle zwei
Sekunden aktualisiert. Ein anderer Intervall kann mit Sekunden aktualisiert. Ein anderer Intervall kann mit
<option>-s</option> spezifiziert werden.</para> <option>-s</option> spezifiziert werden.</para>
</sect1> </sect2>
<sect1 xml:id="basics-daemons"> <sect2 xml:id="basics-daemons">
<title>Dämonen, Signale und Stoppen von Prozessen</title> <title>Stoppen von Prozessen</title>
<para>Wenn Sie einen Editor benutzen, können Sie ihn leicht <para>Eine Möglichkeit mit einem laufenden
bedienen und Dateien laden, weil der Editor dafür Vorsorge
getroffen hat und auf einem <firstterm>Terminal</firstterm>
läuft. Manche Programme erwarten keine Eingaben von einem
Benutzer und lösen sich bei erster Gelegenheit von ihrem
Terminal. Ein Webserver zum Beispiel antwortet auf
Web-Anfragen und nicht auf Benutzereingaben. Mail-Server sind
ein weiteres Beispiel für diesen Typ von Anwendungen.</para>
<para>Diese Programme sind als <firstterm>Dämonen</firstterm>
bekannt. Der Begriff Dämon stammt aus der griechischen
Mythologie und bezeichnet ein Wesen, das weder gut noch böse ist
und welches unsichtbar nützliche Aufgaben verrichtet. Deshalb
ist das BSD Maskottchen dieser fröhlich aussehende Dämon mit
Turnschuhen und Dreizack.</para>
<para>Programme, die als Dämon laufen, werden entsprechend einer
Konvention mit einem <quote>d</quote> am Ende benannt.
<application>BIND</application> steht beispielsweise für
Berkeley Internet Name Domain, das tatsächlich laufende Programm
heißt aber &man.named.8;. Der <application>Apache</application>
Webserver wird <command>httpd</command> genannt und der
Druckerspool-Dämon heißt &man.lpd.8;. Dies ist allerdings nur
eine Konvention. Der Dämon der Anwendung
<application>Sendmail</application> heißt beispielsweise
&man.sendmail.8; und nicht <literal>maild</literal>.</para>
<para>Eine Möglichkeit mit einem Dämon oder einem laufenden
Prozess zu kommunizieren, ist über das Versenden von Prozess zu kommunizieren, ist über das Versenden von
<firstterm>Signalen</firstterm> mittels &man.kill.1;. Es gibt <firstterm>Signalen</firstterm> mittels &man.kill.1;. Es gibt
eine Reihe von verschiedenen Signalen. Manche haben eine feste eine Reihe von verschiedenen Signalen. Manche haben eine feste
@ -3173,9 +3165,10 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
eine Anwendung schlecht geschrieben ist und auf Speicher eine Anwendung schlecht geschrieben ist und auf Speicher
zugreift, auf den sie nicht zugreifen soll, so sendet &os; dem zugreift, auf den sie nicht zugreifen soll, so sendet &os; dem
Prozess das <firstterm>Segmentation Violation</firstterm> Signal Prozess das <firstterm>Segmentation Violation</firstterm> Signal
(<literal>SIGSEGV</literal>). Wenn eine Anwendung den &man.alarm.3; (<literal>SIGSEGV</literal>). Wenn eine Anwendung programmiert
Systemaufruf benutzt hat, um nach einiger Zeit benachrichtigt zu wurde, den &man.alarm.3; Systemaufruf zu benutzen, um nach
werden, bekommt sie das Alarm Signal (<literal>SIGALRM</literal>) einiger Zeit benachrichtigt zu werden, bekommt sie das
<quote>Alarm</quote>-Signal (<literal>SIGALRM</literal>)
gesendet.</para> gesendet.</para>
<para>Zwei Signale können benutzt werden, um einen Prozess zu stoppen: <para>Zwei Signale können benutzt werden, um einen Prozess zu stoppen:
@ -3188,9 +3181,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
Aktion durchführt, die nicht unterbrochen werden darf.</para> Aktion durchführt, die nicht unterbrochen werden darf.</para>
<para><literal>SIGKILL</literal> kann von keinem Prozess ignoriert <para><literal>SIGKILL</literal> kann von keinem Prozess ignoriert
werden. Das Signal lässt sich mit <quote>Mich interessiert werden. Wird einem Prozess <literal>SIGKILL</literal>
nicht, was du gerade machst, hör sofort auf damit!</quote>
umschreiben. Wird einem Prozess <literal>SIGKILL</literal>
geschickt, dann wird &os; diesen sofort beenden<footnote> geschickt, dann wird &os; diesen sofort beenden<footnote>
<para>Es gibt Fälle, in denen ein Prozess nicht unterbrochen <para>Es gibt Fälle, in denen ein Prozess nicht unterbrochen
werden kann. Wenn ein Prozess zum Beispiel eine Datei von werden kann. Wenn ein Prozess zum Beispiel eine Datei von
@ -3203,8 +3194,8 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<para>Andere häufig verwendete Signale sind <para>Andere häufig verwendete Signale sind
<literal>SIGHUP</literal>, <literal>SIGUSR1</literal> und <literal>SIGHUP</literal>, <literal>SIGUSR1</literal> und
<literal>SIGUSR2</literal>. Diese Signale sind für allgemeine <literal>SIGUSR2</literal>. Da diese Signale für allgemeine
Zwecke vorgesehen und verschiedene Anwendungen werden Zwecke vorgesehen sind, werden verschiedene Anwendungen
unterschiedlich auf diese Signale reagieren.</para> unterschiedlich auf diese Signale reagieren.</para>
<para>Ändern Sie beispielsweise die Konfiguration eines <para>Ändern Sie beispielsweise die Konfiguration eines
@ -3274,16 +3265,15 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
zu starten. Beachten Sie, dass die unterschiedlichen zu starten. Beachten Sie, dass die unterschiedlichen
Shells eine andere Syntax benutzen, um die Namen der Shells eine andere Syntax benutzen, um die Namen der
Signale anzugeben. Anstatt jede Syntax zu Signale anzugeben. Anstatt jede Syntax zu
lernen, kann es einfacher sein, <command>/bin/kill lernen, kann es einfacher sein,
<replaceable>...</replaceable></command> direkt <command>/bin/kill</command> direkt aufzurufen.</para>
aufzurufen.</para>
</note> </note>
</step> </step>
</procedure> </procedure>
<para>Beim Versenden von anderen Signalen, ersetzen <para>Beim Versenden von anderen Signalen, ersetzen
Sie <literal>TERM</literal> oder <literal>KILL</literal> in der Sie <literal>TERM</literal> oder <literal>KILL</literal> in der
Kommandozeile mit dem entsprechenden Signal.</para> Kommandozeile mit dem Namen des Signals.</para>
<important> <important>
<para>Das zufällige Beenden eines Prozesses kann gravierende <para>Das zufällige Beenden eines Prozesses kann gravierende
@ -3295,6 +3285,7 @@ Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
<emphasis>immer</emphasis> zweimal <emphasis>bevor</emphasis> <emphasis>immer</emphasis> zweimal <emphasis>bevor</emphasis>
Sie <keycap>Return</keycap> drücken.</para> Sie <keycap>Return</keycap> drücken.</para>
</important> </important>
</sect2>
</sect1> </sect1>
<sect1 xml:id="shells"> <sect1 xml:id="shells">