プロセスから^ Zを実行すると、「停止」します。どのように元に戻しますか?


82

誤ってtelnetプロセスを「停止」しました。今では、「スイッチバック」することも、それを殺すこともできません(kill 9292992929がprocessidである場合、応答しません)。

だから、私の質問は、あなたがLinuxコマンドラインで停止したプロセスを持っている場合、どのようにして元に戻すことなく、どのようにそれに切り替えるか、それを殺すのkill -9ですか?

回答:


91

最も簡単な方法は、実行fgして前面に表示することです。

$ help fg
fg: fg [job_spec]
    Move job to the foreground.

    Place the job identified by JOB_SPEC in the foreground, making it the
    current job.  If JOB_SPEC is not present, the shell's notion of the
    current job is used.

    Exit Status:
    Status of command placed in foreground, or failure if an error occurs.

または、bgバックグラウンドで続行させるために実行できます。

$ help bg
bg: bg [job_spec ...]
    Move jobs to the background.

    Place the jobs identified by each JOB_SPEC in the background, as if they
    had been started with `&'.  If JOB_SPEC is not present, the shell's notion
    of the current job is used.

    Exit Status:
    Returns success unless job control is not enabled or an error occurs.

を押しただけの場合Ctrl Z、ジョブを元に戻すにfgは引数なしで実行します。


ありがとう!! これはAlt + Tabのeqであると思います。私がやったとすぐに何が起こったのか知っていますかfg telnet。それはTerminated、おそらく私の以前のkillcmdのb / c と言った。
ボボボボ14年

@boboboboおそらく、はい。とにかく、はfg引数を必要としません。ちょうどヒットしたら、同じターミナル^Zで実行fgすると、最初のジョブが戻されます。
テルドン

48

を使用jobsして、中断されたプロセスを一覧表示できます。例を見てみましょう。プロセスから始めます。

$ sleep 3000  

次に、プロセスを中断します。

^Z
[1]+  Stopped                 sleep 3000

プロセスをリストできます。

$ jobs
[1]+  Stopped                 sleep 3000

フォアグラウンドに戻します。

$ fg %1
sleep 3000

%1対応[1]して記載されているjobsコマンド。


18

killコマンドを使用してプロセスにCONTINUEシグナルを送信するコマンドを使用して、中断されたプロセスを再起動できる必要があります。

kill -CONT 92929

これにより、操作が再開されますが、フォアグラウンドにはなりません。
バハマ14年

@bahamatはい、まったくその通りです。fg元の端末内で行う必要があります。リソースを節約するために-STOPおよび-CONT guiプログラムを使用したいのですが、とにかくバックグラウンドで実行されています。
ゲーブ14年

以下の場合にはsleep、それ意志kill);あなたが望むものではないプロセスを...
ティモ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.