2

次のような PID を見つけるコマンドを探しています。

ps -ef | grep com.sds.afi.rte.cosmos-1.0.0.jar
cosmos    4690  4689  3 14:27 pts/8    00:00:06 java -Dlog4j.debug -Dlog4j.configuration=file:/data/cosmos/sim/bin/log4j.xml -jar com.sds.afi.rte.cosmos-1.0.0.jar
cosmos    5484  5482  0 14:30 pts/11   00:00:00 grep com.sds.afi.rte.cosmos-1.0.0.jar

次に、次を使用してこれらのプロセスを強制終了します。

kill -9 pid

上記のすべてを自動的に実行するシェルスクリプトを作成するにはどうすればよいですか?

4

7 に答える 7

12

killall java

またはより一般的に:

killall <processname>

時々、同じ名前のプロセスがありますが、コマンド ライン引数が異なります。ps を入力してから pid を強制終了することなく、そのようなプロセスまたは任意のプロセスを強制終了するには、次のようにします。

ps aux | grep <something> | awk '{print $2}' | xargs kill

どこ

  • <something>ps aux コマンドの出力で検索する任意の語句です。
  • awk '{print $2}'PIDのリストである2番目の列のみを除外します
  • killこれらの PID ごとに呼び出されます。

編集: tripleee が指摘しているようkill -9に、絶対に必要でない限り、プロセスを非難するのは悪い考えです。-9したがって、上記のコマンドからその部分を削除しました

于 2012-07-09T05:52:04.270 に答える
3

pkill -9 javaが最も簡単な方法だと思います。pkillgrep を使用して、一致するプロセス名を見つけます。

マニュアルページを参照してください: http://linux.die.net/man/1/pkill

于 2012-07-09T06:03:38.863 に答える
1

これを試して:

kill -9 `pidof java`
于 2012-07-09T05:45:18.733 に答える
0

ErJabが提供するソリューションに加えて、「killall」の動作を模倣するシェル スクリプト killall を作成しました。

#!/bin/sh
ps | grep $1 | awk '{print $1}' | xargs kill -9

/bin ディレクトリに配置したもの (もちろん chmod +x の後)

于 2013-09-17T08:06:58.067 に答える
0

利用可能な場合、最良の選択で言及されているpkill/pgrepコマンドを見つけます。また、次のコマンドを使用しました。これは、コマンドがなくても、または他のコマンドが使用できない可能性があるnikeairjLinux/Unix OS でも動作する可能性があります(環境によっては使用できないことを覚えています) 。awkawkAIXHP-UX

# subsitute myMatch with your process cmdline match, e.g. "firefox", "firefox -P"
# or anything output by "ps -ef"
ps -ef|grep myMatch|grep -v grep|sed -e "s/^[^0-9]\+\([0-9]\+\)\s.\+$/\1/"|xargs kill "{}"
于 2014-02-05T12:57:30.520 に答える
0

「com.sds.afi.rte.cosmos-1.0.0.jar」のプロセス ID を強制終了するシェル スクリプトに以下のコマンドを含めることができます。

-9を殺すps aux | grep com.sds.afi.rte.cosmos-1.0.0.jar | grep -v grep | awk '{print \$2}'

上記で使用したように、pid 検索には必ず逆引き (``) カンマを使用してください。

上記のコマンドを expect コマンドから実行する場合は、以下を使用できます。

「$」を期待する

「kill -9 ps aux | grep com.sds.afi.rte.cosmos-1.0.0.jar | grep -v grep | awk '{print \$2}'\r」を送る

乾杯、スラジュ

于 2016-02-22T12:33:38.643 に答える