IT-Academy Logo
Sign Up Login Help
Home - Betriebssysteme - Linux - Anwendungssoftware - Die Kommandos ps, top, &, fg, bg, jobs



Die Kommandos ps, top, &, fg, bg, jobs

prozesse und jobcontrol werkzeuge werden kurz vorgestellt (ps, top, & , fg, bg , jobs ).


Autor: Franz Schaefer (mond)
Datum: 23-01-2002, 19:29:15
Referenzen: man ps
ps --help
man top
man kill
help kill
kill --help
help fg
help bg
help jobs
Schwierigkeit: Anfänger
Ansichten: 11833x
Rating: Bisher keine Bewertung.

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Übersicht

heute machen wir gleich mehre kommandos auf einmal. dafuer eher kurze und
einfache. aber die die alle einwenig zusammenhaengen.

wenn du:

ps -ax

(ps steht fuer "process status")

machst siehst du alle programme die momentan gerade auf deinem compi
laufen. d.h. manche davon laufen nicht die schlafen (die haben ein S fuer
sleeping). man nennent diese laufenden (und schlafenden) programme:
"prozesse" oder manchmal auch "jobs"). jeder dieser jobs hat eine nummer
die ihn identifiziert (die steht in der ps ausgabe an erster stelle)

ein andere befehl um sich die aktuell laufenden prozesse anzusehen ist:

top

top desshalb weil er die prozesse geordnet nach CPU zeit verbrauch ordnet.
(man kann auch nach speicher verbrauch ordnen wenn man im top gross M
drueckt)

die anzeige wird solange periodisch upgedated solange bis man

q

drueckt um das programm zu beenden.

die erste spalte ist wieder die nummer des prozesses (auch PID genannt). die
ganz oberste zeile zeigt dir die selbe ausgabe an wie der befehl

uptime

die 3 werte hinter "load average" ist die gemittelte anzahl an prozessen
die gleichzeitig laufen wollen. und zwar ueber 1 bzw 5 bzw 15 minuten
gemittelt. ein load average von 1 heisst also dass im durchschnitt
staendig 1 prozess laufen will. d.h. dein compi ist zu 100% ausgelastet.
wenn du einen load average von z.b. 3 hast dann waeren 3 prozesse die alle
gleichzeitig laufen wollen. dein compi ist auch zu 100% ausgelastet aber
jeder der prozesse bekommt nur ein drittel der zeit die er gerne haben
wuerde. ueblicherweise sollte der load average unter 1 sein..

wenn dein compi also aus irgend einem grunde seltsam langsam zu reagieren
scheint lohnt sich meist ein aufruf von top um zu sehen wer denn da soviel
CPU zeit verbraucht. (meist ein haengengebliebenes netscape)

um das programm zu beenden kannst du den "kill" befehl benutzen:

kill 1234

wuerde den prozess mit der nummer 1234 killen in dem ihm mitgeteilt wird
dass er sich gefaelligst beenden soll. wenn sich der prozess aber wirklich
aufgehaengt hat ignoriert er das kill eventuell. dann kann man noch den
"holzhammer" verwenden:

kill -9 1234

sollte dann funktionieren.

wenn du zum "ueben" fuers killen ein programm haben willst das lange
rechnet und viel CPU braucht kannst du ja z.b:

echo 123456^123456 | bc &

eintippen. das wuerde dem programm "bc" sagen es soll 123456^123456
ausrechnen.. die zahl die da rauskommt hat ja doch einige hunderdtausend
stellen..

notfalls kannst du auch alle bc killen mit:

killall bc

so. mehr ueber job control ein ander mal..

wollen wir nur ein programm das lange braucht aber keine CPU zeit verbraet
dann koennen wir auch

sleep 1000 &

verwenden. das macht nichts anders als 1000 sekunden zu "schlafen".

auch die bash bietet uns einige moeglichkeiten um mit jobs umzugehen.

das & am ende einer zeile sagt der shell dass dieser prozess im
hintergrund laufen soll und nicht unsere aktuelle shell blockieren soll.
(ansonsten muesstest du 1000 sekunden warten bis du wieder einen shell
prompt (eingabeaufforderung) bekommst)

bemerkt man erst mit der zeit dass man einen prozess gerne im hitergrund
haben wuerde dann kann man das mit folgenden tasten machen:

^z (control-z) druecken.

das "stoppt" den prozess. er laeuft nicht aber er kann wieder reaktiviert
werden. und zwar mit dem shell befehl:

bg

(fuer background) das reaktiviert den letzten gestoppten befehl und
schickt ihn in den hintergrund. er laeuft dann so als waere er mit & am ende
gestartet worden.

alternativ kann man

fg

(foreground) verwenden um den gestoppten prozess im fordergrund
weiterzufuehren.. (nur wenn der prozess im fordergrund laeuft kann man
auch eingaben dorthin machen).

der bash befehl:

jobs

zeigt alle gerade von dieser shell aus kontrollierten jobs an. die nummer
in kllammer kann man beim kill verwenden um den prozess anzusprechen
(anstatt seiner echten prozess nummer.)

also z.b:

sleep 100 &

kill %1

wuerd genau diesen befehl killen.

befehle die man gerne in den hintergrund schickt sind welche die ohnehin
keine ausgabe auf dem terminal machen sondern die grafische X11
oberflaeche verwenden. z.b.:

xterm &

oder:

netscape &

EXERCISES:

starte ein:

sleep 1000

benutze ^z und fg und bg um diesen befehl in den vordergrund und in den
hintergrund zu schicken. schau dir die ausgabe von "jobs" an.

schau dir die ausgabe von ps und top an.

versuche einen von dir gestarteten sleep befehl auf verschiedenste arten
zu killen.

_______________________________________________
CD ist ein service von SILVER SERVER
der inhalt unterliegt der GFDL
_______________________________________________



[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04511
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06248
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1158
Comments: 0