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:
parent
e58bdb5594
commit
e31be0eec7
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48305
1 changed files with 71 additions and 80 deletions
|
|
@ -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 MB Speicher verbraucht. Momentan benutzt
|
|
||||||
es allerdings nur 5 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">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue