2013-07-25 5 views

Antwort

11

Sie müssen die PID finden und dann kill -CONT <pid> ausgeben.

Sie können die PID finden, indem Sie ps mit einigen Optionen verwenden, um erweiterte Ausgabe zu erzeugen. Angehaltene Jobs haben in der Spalte T in der Spalte STAT (oder S) eine Spalte.

Wenn es Ihnen gelingt, den Prozess fortzusetzen, aber es hat kein kontrollierendes Terminal mehr (und es braucht eines), dann könnte es möglicherweise hängen oder in eine Schleife gehen: Behalten Sie einfach seine CPU-Auslastung im Auge.

+2

Dies ('kill -CONT ...') ist im Allgemeinen der richtige Trick, aber hüte dich vor zwei weiteren Dingen: (1) Das wird seine Eltern-Shell leicht verwirren (nennen wir das * P * für Parent), was nein bekommt Beachten Sie, dass der Prozess (nennen wir es * T *, für sTopped) fortgesetzt wurde, so * P * denkt * T * wird immer noch gestoppt. (2) Wenn der Prozess * T * * * immer noch mit seinem steuernden Terminal verbunden ist und versucht, bestimmte "tty ops" auszuführen, hat die Shell die Kontrollgruppeninformation des * Terminals * nicht übertragen und * T * wird sofort gestoppt wieder mit 'SIGTTIN' oder' SIGTTOU'. – torek

+0

An dieser Stelle ist es wahrscheinlich eine gute Idee, 'screen' oder' tmux' zu erwähnen. – BraveNewCurrency

8

You can type in fg to resume process. Wenn Sie mehrere Prozesse haben, können Sie fg processname (z. B. fg vim) oder fg job_id eingeben.

Um die Job-IDs zu ermitteln, verwenden Sie den Befehl jobs.

Relevant Zitat aus wikipedia auf, was sie tut:

fg ein Job-Steuerbefehl in Unix ist und Unix-artige Betriebssysteme, die es die Ausführung eines unterbrochenen Prozesses wieder in den Vordergrund, indem und damit sein Umleiten Standard-Eingabe- und -Ausgabestreams zum Endgerät des Benutzers.

+0

fg benötigt die Jobnummer. Ich versuche das aus der Ferne zu machen. –

+1

geben Sie 'Jobs' ein, um die Liste der Jobs zu erhalten – jh314

+2

@ jh314:' Jobs' ist eine eingebaute Shell (unbedingt so, da die Jobnummern lokal zu diesem Prozess sind), also müsste er Zugriff auf das Terminal haben welche die Shell ausführt, negiert die Notwendigkeit für eine "Nicht-Shell" -Vorlage. Dies ist möglich, wenn Sie Dinge im Voraus einrichten (z. B. mit "Bildschirm") oder Remote-Desktop-Zugriff haben, aber er versucht, dies ohne diese zu tun. – torek

2

Um Job-ID und pid, verwenden Sie "Jobs -l", wie dies herauszufinden:

$ jobs -l 
[1]+ 3729 Stopped     vim clustertst.cpp 

Die erste Spalte ist job_id, und das zweite ist pid.

Verwandte Themen