2011-04-08 09:38:29 +0000 2011-04-08 09:38:29 +0000
353
353

Linuxで止まっている仕事を再開するにはどうしたらいいですか?

Linuxで停止していた仕事を再開するにはどうしたらいいですか?emacsを使っていて、誤ってctrl-zを押してしまい、コンソールに戻ってしまいました。jobs’

[*****]$ jobs
[1]+ Stopped emacs test_queue.cpp
``` と入力すると表示されます。

回答 (5)

404
404
404
2011-04-08 09:39:38 +0000

コマンドfgは使いたいものです。停止しているジョブが複数ある場合は、ジョブ番号を与えることもできます。

268
268
268
2011-04-08 11:55:01 +0000

Linux における一般的なジョブ制御コマンドは以下の通りです。

  • jobs - 現在のジョブをリストアップする
  • fg - キューの次のジョブを再開する
  • fg %[番号] - ジョブ [番号] を再開する
  • bg - キューの次のジョブをバックグラウンドにプッシュする
  • bg %[番号] - キューの次のジョブをバックグラウンドにプッシュする
  • bg %[番号] - キューの次のジョブをバックグラウンドにプッシュする
  • bg %[番号] - キューの次のジョブをバックグラウンドにプッシュする
  • bg %[番号] - キューの次のジョブをバックグラウンドにプッシュする
  • bg %[番号] - キューの次のジョブをバックグラウンドにプッシュする
  • bg %[番号] - キューの次のジョブをバックグラウンドにプッシュする
  • bg %[番号] - キューの次のジョブをバックグラウンドにプッシュする ジョブ番号をバックグラウンドにプッシュする
  • kill %[number] - ジョブ番号のジョブを終了する
  • kill -[signal] %[number] - ジョブ番号のジョブにシグナルを送信する
  • disown %[number] - プロセスを終了する(所有者となる端末が無くなる)。を使っているので、ターミナルを閉じてもコマンドは生きています。

これでかなりの数になります。コマンドのジョブ番号の下にある % に注意してください - これは kill にプロセスではなくジョブのことを言っていることを伝えるものです。

48
48
48
2013-08-26 21:04:40 +0000

また、%<process_name>と入力することもできます。つまり、emacsでCtrl-Zを打った後、コンソールで%emacsと入力して前景に戻すこともできます。

34
34
34
2011-04-08 14:03:36 +0000

他の回答に補足すると、bashでは、ジョブ番号を指定した場合、fgを省略することができます。

例えば、これらは等価であり、最新のジョブをレジュームします:

%
%%
fg
fg %

これらはジョブ番号4をレジュームします:

%4
fg 4
23
23
23
2016-02-04 19:49:59 +0000

現在のターミナルから起動していない場合は、ps aux | grep <process name> を使ってプロセス番号 (pid) を見つけ、次のようにして再開します:

kill -SIGCONT <pid>

(名前とは裏腹に、kill は単にプロセスにシグナルを送るためのツールであり、プロセス同士の通信を可能にします。(名前とは裏腹に、[]はプロセスにシグナルを送るためのツールに過ぎません。"kill signal “は、多くの標準シグナルの1つに過ぎません。)

ボーナスのヒント: プロセス名の最初の文字をgrepで囲むことで、emacsコマンド自体が結果に現れないようにします。

関連する質問

6
10
11
5
2