Jobs: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „Linux:Befehl:“ durch „“
K Textersetzung - „Bash/Builtins“ durch „Bash/Builtin“
Markierung: Manuelle Zurücksetzung
 
(19 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''jobs''' zeigt Hintergrund-Jobs der aktuellen Shell an
{{DISPLAYTITLE:jobs}}
'''jobs''' - Hintergrund-Jobs der aktuellen Shell anzeigen


=Übersicht=
== Übersicht ==
* Prozesse: Sind Programme, die vom Betriebssystem verwaltet und gesteuert werden.
; Prozesse
* jobs: Der Befehl jobs zeigt den Status der im aktuellen Terminalfenster gestarteten Jobs an. Jobs werden ab 1 für jede Sitzung nummeriert.
: Sind Programme, die vom Betriebssystem verwaltet und gesteuert werden.
Die Job-ID-Nummern werden von einigen Programmen anstelle von PIDs verwendet (z. B. von den Befehlen fg und bg).
; jobs
  jobs
: Der Befehl jobs zeigt den Status der im aktuellen Terminalfenster gestarteten Jobs an. Jobs werden ab 1 für jede Sitzung nummeriert.
 
Die Job-ID-Nummern werden von einigen Programmen anstelle von PIDs verwendet (z. B. von den Befehlen fg und bg).
  $ jobs


=Optionen=
== Optionen ==
  jobs -l
  $ jobs -l


Um den Status aller gestoppten und Hintergrundjobs in der aktuellen Shell-Sitzung anzuzeigen mit Process ID  
Um den Status aller gestoppten und Hintergrundjobs in der aktuellen Shell-Sitzung anzuzeigen mit Process ID  
 
  $ jobs -p
  jobs -p


Status aller gestoppten und Hintergrundjobs mit nur Process ID
Status aller gestoppten und Hintergrundjobs mit nur Process ID
 
  $ kill -9
  kill -9
  $ kill -1
  kill -1


Zum Beenden des Hintergrundprozesses
Zum Beenden des Hintergrundprozesses
  fg  
  fg  


Zeile 34: Zeile 35:
Das Plus zeigt die nächste Priorität
Das Plus zeigt die nächste Priorität


=Beispiel=
== Beispiel ==
 
; Befehl im Vordergrund auszuführen
* Um einen Befehl im Foreground auszuführen
  sleep 1000
  sleep 1000


Zeile 86: Zeile 86:
# https://wiki.ubuntuusers.de/Shell/Prozesssteuerung/
# https://wiki.ubuntuusers.de/Shell/Prozesssteuerung/


[[Category:Linux:Shell:Bash:Builtin]]
[[Kategorie:Bash/Builtin]]
 
= Jobkontrolle =
 
fg, bg und jobs sind Befehle für die interne Jobkontrolle der Bash.
 
Ein laufendes Programm kann mit [Strg] + [Z] in den Hintergrund verschoben werden; dort wird es zunächst angehalten ("suspend").
 
Das Kommando jobs gibt eine Liste aller derzeit im Hintergrund schlafenden Programme aus.
 
Dabei wird für jedes Programm die interne Jobnummer angegeben.
 
Es ist wichtig anzumerken, dass die vergebene Jobnummer in keinem Zusammenhang zu der - etwa von ps - angezeigten Prozessnummer steht.
 
Mit fg Jobnummer holen Sie diese Task wieder in den Vordergrund.
 
Soll ein angehaltenes Kommando dagegen im Hintergrund weiterlaufen, verwendet man den Befehl bg Jobnummer.
 
==== Prozess im Hintergrund weiterlaufen lassen (bg) ====
 
bg [job_spec]
 
Das Kommando lässt einen zuvor gestoppten Prozess im Hintergrund weiterlaufen. Die Ausführung eines Prozesses wird durch Senden des Signals 19 (SIGSTOP) gestoppt. Befinden sich mehrere Prozesse im Zustand "Stopp", kann der gewünschte Prozess über seine Jobnummer angesprochen werden (siehe jobs).
 
'''Beispiel'''
 
ls -l > fifo
^z
[1]+  Stopped                ls --color=tty -l >fifo
bg
[1]+ ls --color=tty -l >fifo &
 
Die Eingabe von [Strg]+[Z] bewirkt in der Bash das Senden des Signals '''SIGSTOP''' an den aktiven Prozess.
 
==== Hintergrundprozess in den Vordergrund holen (fg) ====
 
fg [job_spec]
 
Ein im Hintergrund laufender Prozess kann in den Vordergrund geholt werden.
 
Soll nicht gerade der zuletzt im Hintergrund gestartet Prozess gewählt werden, ist die Angabe der Jobnummer erforderlich, die man mit dem Kommando jobs ermitteln kann.
 
'''Beispiel'''
 
sleep 100& sleep 500&
[1] 1177
[2] 1178
fg %2
 
==== Anzeige aktiver Jobs (jobs) ====
 
jobs    [-lnprs] [jobspec ...]
 
Mit dem Kommando lassen sich alle Hintergrundprozesse ("Jobs") der aktiven Shell anzeigen.
 
'''Optionen'''
 
{|
|-
|  | '''-l'''
|  | Zusätzliche Anzeige der PID
|-
|  | '''-n'''
|  | Nur Prozesse anzeigen, deren Status sich seit dem letzten Aufruf von jobs geändert hat
|-
|  | '''-p'''
|  | Nur die PIDs anzeigen
|-
|  | '''-r'''
|  | Nur aktive Prozesse anzeigen
|-
|  | '''-s'''
|  | Nur gestoppte Prozesse anzeigen
|-
|}
'''Beispiel'''
 
sleep 100&
[1] 1177
jobs
[1]+ Running                sleep 10000 &
jobs -n
[1] 1177
 
==== Verzögerte Ausgabe (sleep) ====
 
'''sleep''' ''Zeit'' [smhd] ...
 
'''sleep''' wartet, dass die ''Zeit'' verstreicht. Voreingestellt sind Sekunden, es können aber auch Minuten, Stunden oder Tage sein.
 
Diese Funktion wird vor allem in Shellscripts zur vorübergehenden Anzeige von Informationen benutzt.
 
'''Optionen'''
 
{|
|-
|  | '''s '''
|  | Sekunden
|-
|  | '''m '''
|  | Minuten
|-
|  | '''h '''
|  | Stunden
|-
|  | '''d '''
|  | Tage
|-
|}
Prozesse, die ihren Status wechseln, quittieren dies mit einer Ausgabe. Wie mit jeder Ausgabe verfahren wird, ist konfigurierbar.
 
===== Benachrichtigung über Statuswechsel =====
 
Vor Anzeige der neuen Eingabeaufforderung
 
'''(sleep 1; echo foo)&'''
[1] 1372
'''foo'''
[Enter]
[1]+  Done                    (sleep 1; echo foo)
 
Durch diese Verzögerung "platzt" der Statusbericht nicht in die Ausgabe des aktuellen Vordergrundprozesses hinein.
 
Gesteuert wird das Verhalten durch die Shelloption '''notify''' (Kommando '''set'''). Ist diese Option aktiviert ('''on'''), so erreicht uns die Statusmeldung sofort:
 
'''set -o notify
(sleep 1; echo foo)&'''
[1] 1376
'''foo'''
[1]+  Done                    (sleep 1; echo foo)


[[Category:Linux:Shell:Bash:Builtin]]
[[Kategorie:Bash/Builtin]]
[[Category:Linux:Shell:Bash:Interaktiv]]
[[Kategorie:Bash/Interaktiv]]
[[Kategorie:Linux/Befehl]]
{{DEFAULTSORT:jobs}}

Aktuelle Version vom 21. September 2024, 22:42 Uhr

jobs - Hintergrund-Jobs der aktuellen Shell anzeigen

Übersicht

Prozesse
Sind Programme, die vom Betriebssystem verwaltet und gesteuert werden.
jobs
Der Befehl jobs zeigt den Status der im aktuellen Terminalfenster gestarteten Jobs an. Jobs werden ab 1 für jede Sitzung nummeriert.

Die Job-ID-Nummern werden von einigen Programmen anstelle von PIDs verwendet (z. B. von den Befehlen fg und bg).

$ jobs

Optionen

$ jobs -l

Um den Status aller gestoppten und Hintergrundjobs in der aktuellen Shell-Sitzung anzuzeigen mit Process ID

$ jobs -p

Status aller gestoppten und Hintergrundjobs mit nur Process ID

$ kill -9
$ kill -1

Zum Beenden des Hintergrundprozesses

fg 

Um einen Hintergrundprozess in den Vordergrund zu bringen

bg

Um einen Vordergrund in den Hintergrundprozess zu bringen

[1]-  Angehalten               
[2]+  Angehalten            

Das Plus zeigt die nächste Priorität

Beispiel

Befehl im Vordergrund auszuführen
sleep 1000


  • Um einen Foregroundprozess Anhalten
STRG+z


  • Um einen Befehl im Hintergrund auszuführen
sleep 2000 & 


  • Um den Status aller gestoppten und Hintergrundjobs in der aktuellen Shell-Sitzung anzuzeigen
jobs
[1]+  Angehalten              sleep 1000
[2]-  Läuft                  sleep 2000 &


  • Um den Status aller gestoppten und Hintergrundjobs in der aktuellen Shell-Sitzung anzuzeigen Mit ID
jobs -l
[1]+  1990 Angehalten              sleep 1000
[2]-  1991 Läuft                  sleep 2000 &


  • Geben Sie fg folgend in die Job-ID ein, um den Prozess auf Foreground zu bringen
fg 2
sleep 2000 


  • Geben Sie bg folgend in die Job-ID ein, um den Prozess auf Hintergrund zu bringen
bg 1
[1]- sleep 1000 &


  • Zum Beenden des Hintergrundprozesses (Verwenden Sie den Befehl kill gefolgt von der Prozess-ID)
kill -9 6963 


  • Um alle Hintergrundprozesses Beenden
kill $(jobs -p)


Links

Siehe auch

  1. bg
  2. fg

Extern

  1. https://wiki.ubuntuusers.de/Shell/Prozesssteuerung/