Ubuntuでジョブを強制終了する


22

これはおそらくよくある質問ですが、良いドキュメントを見つけることができませんでした。

システムで実行中のジョブがあります:

foo@fooBox:~/tmp$ jobs
[1]+  Stopped                 foo bar baz

このプロセスを強制終了するにはどうすればよいですか?のようなさまざまなコマンドを試しましたが、うまくいきませkill 1んでした。


または、$ fg [enter] [ctrl-c]:p
bubu

@bubu:キャッチする一部のプログラムSIGINT(など)では機能しませんvim
ワッファー

P:@マークスジーマンスキー私は知っていた、知っていた
ブブ

回答:


32

@fideliが提案する方法を使用するか、kill次のようにコマンドを使用できます。

kill %1

これにより、中断された最初のコマンドが強制終了されます。次のような中断されたコマンドのリストも見つけることができます。

jobs

そして、次のような出力を提供します。

[1]+  Stopped                 yes

停止したジョブが複数ある場合、括弧内の数字([1])は%killコマンドの後に指定するジョブ番号になります。


これは素晴らしい!について新しいことを学びましたkill
フィデリ

1
どのように私はこれを取得来ます-bash: kill: (3593) - Operation not permitted。私は、sudoでそれを使用すると、私はこれを取得kill: %1: invalid process id
CMCDragonkai

1
@CMCDragonkaiあなたのきは、あなたが使用しているためコマンドは、あなたがしまし実行今、別のユーザーが所有している状況を打つsudoあなたはそれを殺すが、動作していないことができますので、kill使用していないsudoあなたは、もはやあなたのユーザのジョブリストへのアクセス権を持っている(試して手段をsudo jobs意味を確認するために実行しています)。代わりに、PIDを取得したので、単に実行しsudo kill 3593ます。
morloch

バックグラウンドプロセスを別のユーザーが所有するにはどうすればよいですか?
CMCDragonkai

6

実行ps axすると、実行中のすべてのプロセスのリストが表示されます。殺したい人を探して、PID列の数字を書き留めます。たとえば、番号がであった10203とすると、次を実行します。

kill 10203

実行ps ax | grep fooして、探している正確なプログラムを見つけることもできます。最後に、次を実行できます。

killall foo

のすべてのインスタンスを強制終了しますfoo

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.