Wie kann ich einen gestoppten Job unter Linux fortsetzen?

Wie kann ich einen gestoppten Job unter Linux fortsetzen? Ich habe Emacs verwendet und versehentlich Strg-z gedrückt, was mich zurück zur Konsole gesprengt hat. Ich kann es sehen, wenn ich 'jobs'

[*****]$ jobs
[1]+  Stopped                 emacs test_queue.cpp
Author: shgnInc, 2011-04-08

5 answers

Der Befehl fg ist das, was Sie verwenden möchten. Sie können ihm auch eine Jobnummer geben, wenn mehr als ein angehaltener Job vorhanden ist.

 441
Author: Ilkka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-04-08 09:39:38

Die allgemeinen Befehle zur Jobsteuerung unter Linux lauten:

  • jobs - Liste der aktuellen Jobs
  • fg - Setzen Sie den nächsten Job in der Warteschlange fort
  • fg %[Zahl] - Job fortsetzen [Zahl]
  • bg - Schiebe den nächsten Job in der Warteschlange in den Hintergrund
  • bg %[number] - Schieben Sie den Job [number] in den Hintergrund
  • kill %[number] - Tötet den job nummeriert [Anzahl]
  • kill [- signal] %[Zahl] - Senden Sie das Signal [Signal] an die Auftragsnummer [Zahl]
  • verleugnen %[number] - verleugnen der Prozess(nicht mehr terminal-Besitzer), so wird der Befehl lebt auch nach dem schließen des Terminals.

Das sind so ziemlich alle. Beachten Sie die % infront der Auftragsnummer in den Befehlen - dies sagt Ihnen, dass Sie über Jobs und nicht über Prozesse sprechen.

 297
Author: Majenko,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-04-16 03:27:17

Sie können auch %<process_name>; dh Sie drücken Strg-Z in Emacs, dann können Sie %emacs in die Konsole eingeben und in den Vordergrund bringen.

 48
Author: NickD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-08-26 21:04:40

Nur um die anderen Antworten hinzuzufügen, können Sie mit bash die fg überspringen, wenn Sie eine Jobnummer angeben.

Zum Beispiel sind diese gleichwertig und setzen den neuesten Job fort:

%
%%
fg
fg %

Diese Lebenslauf job #4:

%4
fg 4
 34
Author: user1686,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2011-04-08 14:03:36

Wenn Sie es nicht vom aktuellen Terminal aus gestartet haben, suchen Sie mit ps aux | grep <process name> die Prozessnummer (pid) und setzen Sie sie mit:

kill -SIGCONT <pid>

(Trotz des Namens ist kill einfach ein Werkzeug, um ein Signal an den Prozess zu senden, sodass Prozesse miteinander kommunizieren können. Ein "Kill-Signal" ist nur eines von vielen Standardsignalen.)

Bonustipp: Wickeln Sie das erste Zeichen des Prozessnamens mit [], um zu verhindern, dass der Befehl grep selbst in den Ergebnissen erscheint. zB um emacs Prozess zu finden, benutze ps aux | grep [e]macs

 26
Author: mahemoff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-02-16 11:11:28