| Navigationsleiste | Direktzugriff | Kurs | Home |
Jedes laufende Programm besteht aus einem oder auch mehreren Prozessen und jeder Prozess hat einen Status. Damit das etwas klarer wird, gibt mal bitte als root den Befehl ps (Prozess Status) ein:
| [root] # ps -fx #Laufende root-Prozesse anzeigen ...
|
Das sagt uns nun folgendes (ich nehme mal unseren ps Befehl):
| 1855 | pts/3 | R | 0:00 | \_ ps -fx |
| Prozess -Nummer |
Terminal | Prozess- Status |
verbrauchte Rechenzeit in MM:SS |
Datei- Name (+ Parameter) |
| R | running = läuft |
| S | sleeping = schläft und wartet auf Arbeit |
| Z | zombie = existiert nur kurz und verschwindet dann. Kann aber auch stehen bleiben, wenn der Eltern-Prozess gestorben ist. Hat keine Nachteile im System, kann ruhig komplett beendet werden |
| W | belegt keine Seiten im Speicher |
| -a | Prozesse aller User anzeigen |
| -f | zeigt eine Baumansicht |
| -l | detailiertere Ausgabe |
| -u | zeigt den Besitzer des Prozesses an |
| -x | zeigt auch Prozesse an die zu keinem Terminal gehören |
Kennst du die Prozess-Nummer, kannst du jeden Prozess (als root) beenden, bzw. killen (ja da heiß wirklich so). Der dazu benutze Befehl ist kill.
Du sagst ihm welchen Prozess er killen soll und er tut es:
| [root] # kill 1522 #Prozess-Nummer 1522 wird beendet |
Nun wird dem Prozess das SIGTERM-Signal gesendet und er wird sich gleich beenden....
Sollt der Befehl direkt gekillt werden, ohne ihm die Chance zu geben aufzuräumen oder ist es ein Zombie-Prozess, kannst du folgendes eingeben:
| [root] # kill -KILL 1522 #Prozess-Nummer 1522 wird SOFORT beendet |
Das solltest du aber nur im Notfall machen !!!
Einigen Prozessen kann auch ein -HUP gesendet werden, damit sie ihre Konfiguration neu einlesen. Das steht dann in der man-Pages des Programmes.
Jeder Prozess besitzt eine bestimmte Priorität bzw. Rechenzeit. Diese Priorität verteilt Linux selber und im Normalfall haben alle Programme die Priorität 0. Die Priorität verteilt sich von 20 bis -20: 20 ist ganz niedrig und -20 ganz hoch.
Im Normalfall solltest du an der Priorität nichts ändern, manchmal kann es nützlich.
Ein Beispiel: Du möchtest im Hintergrund ein Backup-Programm laufen lassen, möchtest aber beim Arbeiten nicht groß gestört werden. Du kannst das Backup-Programm mit einer niedrigen Priorität starten:
| tux $ nice -n 10 backup.sh #Programm backup.sh mit der niedrigen Priorität 10 starten |
Anzeigen kannst du die Priorität übrigens bei ps mit dem Parameter -l, oder mit top (Zeile NI).
Mit dem Befehl renice kann root (sonst keiner) die Priorität eines laufenden Prozesses ändern. Auch darf nur root eine höhere Priorität als 0 erteilen.
| |
||
| Benutzer | Init |
| Erstellt: 2001-03-29 | Autor: Markus Ungermann (markus@tuxhausen.de) |
| Letztes Update: 2007-10-06 | URL: http://www.tuxhausen.de/kurs_prozesse.html |