web-dev-qa-db-ja.com

バックグラウンドタスクをフォアグラウンドに戻す方法は?

&を追加した後、実行中のprocessを停止する方法を教えてください。

たとえば、ソフトウェアfooをインストールします。ここで、fooに多くの依存関係があると仮定すると、完了するまでに1時間かかります。だから、私はそうします:yum install foo &。しかし、進行中のプロセスをフォアグラウンド(私の質問の実際の前提)にして中断できるようにするか、必要に応じて他の方法でその進行中のプロセスを停止したいと思います。

Ctrl+C これを止めるようには見えません。

3
robue-a7119895

コマンドを起動したターミナルがまだ開いている場合は、fgを実行して元に戻すことができます。

そうでない場合は、ps aux | grep yumまたはpgrep yumを実行してプロセスIDを識別し、kill PIDを使用します。または、yumインスタンスが1つしかないことがわかっている場合は、pkill yumを実行します。

7
terdon

同じシェルにいる場合は、fgを使用してそのプロセスを常にフォアグラウンドにすることができます(シェルがサポートしている場合)。この時点で、 Ctrl+C

他の人が述べたように、さまざまなpsおよびkillオプションを使用できます。

必要に応じて、topを使用してユーザー名にフィルターをかけ、その方法で強制終了することもできます。

3
SailorCire

これを試して:

kill -QUIT `pidof yum`

これは停止し、このプロセスを終了します。 QUIT信号よりも良い力を使う必要があるかもしれません。それからTERMを試してから、KILLを試してください。

あなたはもう少し怠惰で、これをするだけかもしれません:

killall -QUIT yum

これにより、yumという名前のすべてのプロセスがヒットします。

2
Scyld de Fraud

あなたが探しているキーの組み合わせは

ctrl-c

プロセスを中断するときに使用します(使用するのと同じです) ctrl-c

もし、あんたが ctrl-z 代わりに、使用するのと同様に、ジョブをバックグラウンドで配置します & 最後に。

ただし、この方法を使用すると、プロセスをフォアグラウンドに戻すことができます。 fg

または、Scyldが言及しているように、pidofを使用してpidを探すことができます。

0
Michael Durrant