web-dev-qa-db-ja.com

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

telnetプロセスを誤って「停止」しました。これで「元に戻す」こともできず、強制終了することもできません(kill 92929には応答しません。92929はプロセスIDです)。

ですから、私の質問は、Linuxコマンドラインでプロセスが停止している場合、kill -9に頼らずに、どのようにしてプロセスに切り替えるか、強制終了するかです。

90
bobobobo

最も簡単な方法は、 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.

たった今 CtrlZ次に、ジョブを元に戻すには、引数なしでfgを実行します。

103
terdon

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

$ sleep 3000  

次に、プロセスを一時停止します。

^Z
[1]+  Stopped                 sleep 3000

プロセスを一覧表示できます。

$ jobs
[1]+  Stopped                 sleep 3000

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

$ fg %1
sleep 3000

%1は、jobsコマンドでリストされた[1]に対応します。

50
Luis

コマンドラインからkillコマンドを使用してプロセスにCONTINUEシグナルを送信することにより、中断されたプロセスを再開できるはずです。

kill -CONT 92929
20
Geeb