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$
|
||||
$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">
|
||||
<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 xml:id="basics-processes">
|
||||
<title>Prozesse</title>
|
||||
<title>Prozesse und Dämonen</title>
|
||||
|
||||
<para>&os; ist ein Multitasking-Betriebssystem. Jedes
|
||||
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
|
||||
spezieller Prozess namens &man.init.8;, der beim booten immer
|
||||
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
|
||||
&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>
|
||||
|
||||
<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>Die Ausgabe von &man.ps.1; ist in einer Anzahl von Spalten
|
||||
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>
|
||||
|
||||
<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
|
||||
47 processes: 1 running, 46 sleeping
|
||||
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
|
||||
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 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>
|
||||
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>Die Ausgabe ist in zwei Abschnitte geteilt. In den ersten
|
||||
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
|
||||
Systemlaufzeit (die Zeit seit dem letzten Reboot) und die
|
||||
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
|
||||
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
|
||||
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
|
||||
des Prozesses an. Die erste Spalte gibt
|
||||
den gesamten Speicherverbrauch des Prozesses an, in der zweiten
|
||||
Spalte wird der aktuelle Verbrauch angegeben.
|
||||
<application>mutt</application> hat im gezeigten Beispiel
|
||||
insgesamt 8 MB Speicher verbraucht. Momentan benutzt
|
||||
es allerdings nur 5 MB.</para>
|
||||
Spalte wird der aktuelle Verbrauch angegeben.</para>
|
||||
|
||||
<para>Die Anzeige wird von &man.top.1; automatisch alle zwei
|
||||
Sekunden aktualisiert. Ein anderer Intervall kann mit
|
||||
<option>-s</option> spezifiziert werden.</para>
|
||||
</sect1>
|
||||
</sect2>
|
||||
|
||||
<sect1 xml:id="basics-daemons">
|
||||
<title>Dämonen, Signale und Stoppen von Prozessen</title>
|
||||
<sect2 xml:id="basics-daemons">
|
||||
<title>Stoppen von Prozessen</title>
|
||||
|
||||
<para>Wenn Sie einen Editor benutzen, können Sie ihn leicht
|
||||
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
|
||||
<para>Eine Möglichkeit mit einem laufenden
|
||||
Prozess zu kommunizieren, ist über das Versenden von
|
||||
<firstterm>Signalen</firstterm> mittels &man.kill.1;. Es gibt
|
||||
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
|
||||
zugreift, auf den sie nicht zugreifen soll, so sendet &os; dem
|
||||
Prozess das <firstterm>Segmentation Violation</firstterm> Signal
|
||||
(<literal>SIGSEGV</literal>). Wenn eine Anwendung den &man.alarm.3;
|
||||
Systemaufruf benutzt hat, um nach einiger Zeit benachrichtigt zu
|
||||
werden, bekommt sie das Alarm Signal (<literal>SIGALRM</literal>)
|
||||
(<literal>SIGSEGV</literal>). Wenn eine Anwendung programmiert
|
||||
wurde, den &man.alarm.3; Systemaufruf zu benutzen, um nach
|
||||
einiger Zeit benachrichtigt zu werden, bekommt sie das
|
||||
<quote>Alarm</quote>-Signal (<literal>SIGALRM</literal>)
|
||||
gesendet.</para>
|
||||
|
||||
<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>
|
||||
|
||||
<para><literal>SIGKILL</literal> kann von keinem Prozess ignoriert
|
||||
werden. Das Signal lässt sich mit <quote>Mich interessiert
|
||||
nicht, was du gerade machst, hör sofort auf damit!</quote>
|
||||
umschreiben. Wird einem Prozess <literal>SIGKILL</literal>
|
||||
werden. Wird einem Prozess <literal>SIGKILL</literal>
|
||||
geschickt, dann wird &os; diesen sofort beenden<footnote>
|
||||
<para>Es gibt Fälle, in denen ein Prozess nicht unterbrochen
|
||||
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
|
||||
<literal>SIGHUP</literal>, <literal>SIGUSR1</literal> und
|
||||
<literal>SIGUSR2</literal>. Diese Signale sind für allgemeine
|
||||
Zwecke vorgesehen und verschiedene Anwendungen werden
|
||||
<literal>SIGUSR2</literal>. Da diese Signale für allgemeine
|
||||
Zwecke vorgesehen sind, werden verschiedene Anwendungen
|
||||
unterschiedlich auf diese Signale reagieren.</para>
|
||||
|
||||
<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
|
||||
Shells eine andere Syntax benutzen, um die Namen der
|
||||
Signale anzugeben. Anstatt jede Syntax zu
|
||||
lernen, kann es einfacher sein, <command>/bin/kill
|
||||
<replaceable>...</replaceable></command> direkt
|
||||
aufzurufen.</para>
|
||||
lernen, kann es einfacher sein,
|
||||
<command>/bin/kill</command> direkt aufzurufen.</para>
|
||||
</note>
|
||||
</step>
|
||||
</procedure>
|
||||
|
||||
<para>Beim Versenden von anderen Signalen, ersetzen
|
||||
Sie <literal>TERM</literal> oder <literal>KILL</literal> in der
|
||||
Kommandozeile mit dem entsprechenden Signal.</para>
|
||||
Kommandozeile mit dem Namen des Signals.</para>
|
||||
|
||||
<important>
|
||||
<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>
|
||||
Sie <keycap>Return</keycap> drücken.</para>
|
||||
</important>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 xml:id="shells">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue