web-dev-qa-db-ja.com

ターミナルでこのTomcatプロセスを強制終了するにはどうすればよいですか?

ps -ef | grep Tomcatを使用して、実行中のTomcatサーバーを見つけました。 kill -9 {id}を試しましたが、「そのようなプロセスはありません」が返されます。私は何を間違えていますか?

以下に例を示します。

Admins-MacBook-Pro:test-parent tom.maxwell$ ps -ef | grep Tomcat
2043706342 39707 39695   0  3:40PM ttys000    0:00.00 grep Tomcat
Admins-MacBook-Pro:test-parent tom.maxwell$ kill -9 39707
-bash: kill: (39707) - No such process
48
Tom Maxwell

Tomcatを強制終了するためにTomcatのpid(プロセスID)を知る必要はありません。次のコマンドを使用して、Tomcatを強制終了できます。

pkill -9 -f Tomcat
118
Darshan

ps -ef | grep Tomcat | awk '{print $ 2}' | xargs kill -9

https://Gist.github.com/nrshrivatsan/1d2ea4fcdcb9d1857076

パート1

ps -ef | grep Tomcat => Tomcat grepですべてのプロセスを取得

パート2

プロセスの詳細を取得したら、それをスクリプトのパート2にパイプします

awk '{print $ 2}' | xargs kill -9 => 2番目の列[プロセスID]を取得し、-9オプションでそれらを強制終了します。

お役に立てれば。

23
suryakrupa

Tomcatは実行されていません。あなたの検索はTomcatを検索しているgrepプロセスを示しています。もちろん、出力が表示されるまでに、grepは実行されていないため、pidは無効になっています。

18
Aurand

他の人がすでに指摘したように、grepプロセスを見てきました。出力をTomcat自体に制限する場合は、2つの選択肢があります

  • 文字クラスで最初に検索された文字をラップします

    ps -ef | grep '[t]omcat'
    

    これもTomcatを検索しますが、grep [t]omcatと一致しないため、[t]omcatエントリが見つかりません。

  • psでカスタム出力形式を使用する

    ps -e -o pid,comm | grep Tomcat
    

    これは、プロセス引数なしでプロセスのpidと名前のみを表示します。そのため、grepはgrep Tomcatとしてではなく、grepとしてリストされます。

12
Olaf Dietsche

ターミナルで以下のコマンドを入力するだけです

ps -ef |grep 'catalina'

プロセスIDの値をコピーし、次のコマンドを入力してプロセスIDを貼り付けます

 kill -9 processid
11
ASR
ps -ef

現在実行中のすべてのプロセスをリストします

| grep Tomcat

出力をgrepに渡し、Tomcatのインスタンスを探します。 grepはプロセス自体であるため、コマンドから返されます。ただし、出力にはTomcatの実行プロセスは表示されません。

2
Chris Knight

Tomcat/bin/catalina.sh

コメントセクションが終了した直後に次の行を追加します。

CATALINA_PID=someFile.txt

次に、Tomcatの実行中のインスタンスを強制終了するには、次を使用できます。

kill -9 `cat someFile.txt`
2
ps -Af | grep "Tomcat" | grep -v grep | awk '{print$2}' | xargs kill -9
2
Vaibhav

これは私のために働いた:

ステップ1:ps aux | grep org.Apache.catalina.startup.Bootstrap | grep -v grep | awk '{ print $2 }'をエコーする

上記のコマンドは「process_id」を返します

ステップ2:-9 process_idを強制終了
//このprocess_idは、ステップ1:出力と同じです。

1
jaydip jadhav

名前でプロセスを強制終了するには、次を使用します

ps aux | grep "search-term" | grep -v grep | tr -s " " | cut -d " " -f 2 | xargs kill -9

tr -s " " | cut -d " " -f 2awk '{print $2}'と同じです。 trはタブスペースを単一スペースに抑制し、cutには区切り文字として<SPACE>が提供され、2番目の列が要求されます。 ps aux出力の2番目の列はプロセスIDです。

0

サーバー上の多数のJavaプロセスの中でactiveMQ Javaプロセスを終了する必要がありましたが、これは特定のユーザー(ユーザー名はactivemq)によって開始されます。分離の良い方法は、特定のユーザーがプロセスを開始することです:

ps -ef | grep "activemq" | awk '{print $2}' | xargs kill -9
0
dobrivoje

@Aurandが言ったように、Tomcatは実行されていません。使用できます

psプログラムを無視するps -ef |grep Java | grep Tomcatコマンド。

シェルスクリプトファイルで私のために働いた。

0
ccjeaty
kill -9 $(ps -ef | grep 8084 | awk 'NR==2{print $2}')

NRは、入力ファイル内のレコード数です。 awkはテキストを検索または置換できます

0
user8357232

これは非常にうまく機能します(Tomcatプロセスを見つけて強制的に終了します)

ps -ef | grep Tomcat | awk '{print $2}' | xargs kill -9
0
Pravin