2009-05-03 14 views
1

私は失敗した% 4は私のVimのセッションであるところ、それは

sudo killall %4 

次のコードを実行開かずにジョブを終了することができません。

どのようにしてジョブを終了させることができますか?

+0

あなたはどのようなシェルを使用しているの? –

+0

@Andy:私はZshを使用しています。 –

+1

"あなたはそれを誇張せずにどのように仕事を終わらせますか"という意味ですか? –

答えて

2

「killall」の代わりに「kill」をしたいと思っています。私はこのようなtcshの下で試験:

home% cat 
^Z 
Suspended 
home% kill %1 
home% 
[1] Terminated     cat 

はさらに、私はsudoのはそれではないだろう、新しいシェルを起動しますので、これは、sudoで働くことはないだろうか?そのシェルでは、%4は定義されません。

home% cat 
^Z 
Suspended 
home% sudo kill %1 
Password: 
kill: illegal process id: %1 

あなたは本当にsudoをする必要がある場合は、この試すことができます:

home% jobs -l 
[1] + 26318 Suspended cat 
home% sudo kill 26318 
+0

sudoのポイントが良いです。 sudoを使わなくても、あなたはまだシェル環境のいくつかを継承するべきです...うーん... – easel

+0

あなたの答えをありがとう!私は最初にkillを使いましたが、Vimのプロセスではうまくいかなかったのです。したがって私のコード例では、sudoを使ってkillallを使用して、自分のコマンドを強力にしています。 sudoはコマンドをより強力にするわけではなく、killallはコマンドをもっと強力にしません。 –

+0

もうちょっとエリック! –

3

代わりにkill %4を試してください。 UNIXシェルは、現在実行中のプロセスの変数として%xを使用します。 %x構文で使用できるプロセスを確認するには、jobsを使用してください。 Killallは "kill"のラッパーで、基本的に `ps -aux | grep | grep | grepカット-f2 -d "" | xargs kill 'などがあります。

いいえ、申し訳ありませんが、シェルコマンドはうまくいきませんが、killallがどのように動作するかを示しています。あなたが提供する文字列にマッチするすべてのプロセスを殺すだけです。

また、殺すことについてもっと知るには `man kill 'を試してください。特に、kill -9は役に立つかもしれません。これは、「強制終了」と同等のものです。

+0

@Erik:killallの動作についてご説明いただきありがとうございます。しかし、killallには数学的にkillは含まれていません。Chrisのコード例を参照してください。 –

関連する問題