Linuxで停止したジョブを再開するにはどうすればよいですか?


344

Linuxで停止したジョブを再開するにはどうすればよいですか?私はemacsを使用していて、誤ってctrl-zを押して、コンソールに戻ってしまいました。「jobs」と入力すると表示されます

[*****]$ jobs
[1]+  Stopped                 emacs test_queue.cpp

これは実際にはVimのかなり正常なワークフローです。bash履歴にコマンドを保持したい場合はCtrl-z、コマンドを入力してから再開します。明らかに、:!ed コマンドを使用してVimを終了せずにコマンドを実行できます
-icc97

回答:


383

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


59
参考のために、fgは「フォアグラウンド」です。「bg」を使用してバックグラウンドでジョブを続行することもできます。
Sirex

261

Linuxの一般的なジョブ制御コマンドは次のとおりです。

  • jobs-現在のジョブをリストします
  • fg-キュー内の次のジョブを再開します
  • fg%[number] -ジョブ[number]を再開します
  • bg-キュー内の次のジョブをバックグラウンドにプッシュします
  • bg%[number] -ジョブ[number]をバックグラウンドにプッシュします
  • kill%[number] -[number]番のジョブを強制終了します
  • kill-[signal]%[number] -シグナル[signal]をジョブ番号[number]に送信します
  • disown%[number] -プロセスを否認します(これ以上端末は所有者になりません)。そのため、端末を閉じた後でもコマンドは有効です。

それがほとんどすべてです。コマンドのジョブ番号の前にある%に注意してください。これは、プロセスではなくジョブについて話していることをkillに伝えるものです。


30
:)本当に悪い「1を殺す」としてそれをタイプミスので、私は「%1を殺す」を避ける
barrycarter

5
@barrycarterそれは非常に本当です。私は通常、fgおよびを行いCtrl-Cます;)
Majenko

6
@barry:これが、UpstartのinitがデフォルトでSIG {TERM、KILL}を無視する理由です。
Hello71

7
そして、もちろん、「rootとして決して実行しない」;)
barrycarter

47

を入力することもでき%<process_name>ます。つまり、emacsでCtrl-Zを押す%emacsと、コンソールに入力してフォアグラウンドに戻すことができます。


知っておきたいこと
ZAD-Man

33

他の回答に追加するために、bashではfg、ジョブ番号を指定した場合はスキップできます。

たとえば、これらは同等であり、最新のジョブを再開します。

%
%%
fg
fg %

これらの再開ジョブ#4:

%4
fg 4

2
これはクールの一種ですが、私はまだそれが簡単に入力することを見つけるfgより%
rr- 14年

3
%素晴らしいです、ありがとう!タッチタイピストとして、fg非常にいらいらします(同じ指)。しかし、そうですcd
ゴーティエ

そして、あなたはどちらかbg %またはちょうどでそれをバックグラウンドで始めることができます% &
ワイルドカード

私の場合、fgを使おうとしたときに、停止したプロセスが表示され、すぐに消えて、<fg%>が復元に成功したことがわかります。
レフィタリック

20

現在の端末から起動しなかった場合は、を使用ps aux | grep <process name>してプロセス番号(pid)を見つけ、次のコマンドで再開します。

kill -SIGCONT <pid>

(名前にもかかわらず、kill単にプロセスにシグナルを送信し、プロセスが相互に通信できるようにするツールです。「killシグナル」は、多くの標準シグナルの1つにすぎません。)

ボーナスのヒント:コマンド名が結果に表示され[]ないように、プロセス名の最初の文字をラップgrepします。たとえば、emacsプロセスを見つけるには、使用しますps aux | grep [e]macs


2
あなたが停止したプロセスを否認する場合にも動作します
mabraham

あなたが言うときに起こるように、その入出力にもアクセスできますfgか?
CiprianTomoiagă18年

これは、ジョブ番号を使用するよりもはるかに柔軟なアプローチです。いいぞ。
thomp45793
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.