1

次のコードを実行できませんでした

sudo killall %4

ここで、%4は私のVimセッションです。

フォアグラウンドせずにジョブを終了するにはどうすればよいですか?

4

2 に答える 2

3

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

いいえ、申し訳ありませんが、そのシェルコマンドは完全には機能しませんが、killallがどのように機能するかを示しています=p。指定した文字列に一致するすべてのプロセスを強制終了するだけです。

また、killの詳細については、「mankill」を試してください。特に、あなたが役に立つと思うかもしれない-9を殺してください。これは、「強制終了」に相当します。

于 2009-05-03T04:00:07.523 に答える
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
于 2009-05-03T04:05:24.250 に答える