cassandra Mac OS Xの単一ノードで実行されているサーバーを停止するにはどうすればよいですか?Cassandraスクリプトには-stopオプションがありません。再起動以外の方法のみmac os xは、「ps」を実行してJavaプロセスを見つけ、cassandraの引数があり、kill -9を使用してプロセスを強制終了しました。
しかし、再起動しようとするとcassandraその後もスローされます
Error: Exception thrown by the agent : Java.rmi.server.ExportException: Port already in use: 7199; nested exception is: Java.net.BindException: Address already in use
。
誰か見た?簡単な解決策はありますか?
編集:私は実際にこれがはるかに便利だと思います。
ターミナルを開いて入力:
$ ps -ax |グレップカサンドラ
cassandraという名前で実行されているPIDのリストを表示します。
PID番号を使用してプロセスを強制終了します。たとえば、ここに戻り値があります:708 ttys000 0:03.10/usr/bin/Java -ea -javaagent:Downloads/Web/Cassandra/dsc-cassandra-1.1.0/bin /
$ 708を殺す
古い投稿:
コメントを投稿した後、BINにサーバー停止スクリプトが見つかりました。
スクリプトを使用する場合は、スクリプトを開いてコードをコメント化する必要があります。しかし、これがスクリプトの中で言っていることです。
echo "please read the stop-server script before use"
# if you are using the cassandra start script with -p, this
# is the best way to stop:
kill `cat <pidfile>`
# otherwise, you can run something like this, but
# this is a shotgun approach and will kill other processes
# with cassandra in their name or arguments too:
# user=`whoami`
# pgrep -u $user -f cassandra | xargs kill -9
うまくいくように見える他の場所でこの解決策を見つけました!
pkill -f 'Java.*cassandra'
試すだけの価値があります!これは私が持っているUbuntuで動作します。 MacOSではありません!
Macではもう1つはps -af | grep cassandra
そして、killを使用します。しかし、それは時々動作しません!
別のアプローチは、次のように、どのOSプロセスでCassandraポートが開いているかを確認することです。
lsof -i :9160
出力例:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Java 30253 aswan 214u IPv4 0xffffff80190dcc20 0t0 TCP *:netlock1 (LISTEN)
次に、そのプロセスで「kill -9 [pid]」を使用できます。
Cassandraのnodetoolコマンドも使用できます。
nodetool drain
ドキュメンテーションはそれがシャットダウンすることについて何も述べていませんが、それは単一のノード、ローカルサーバーで私にとって確実に機能します。ただし、シャットダウンが完了するまでに数秒かかります。
私は新しいDatastax Enterprise 5.0バージョンを使用していますが、少なくとも、Cassandraを停止するための簡単なコマンドが提供されています。
dse cassandra-stop
シャットダウンには少し時間がかかりますが、私にとってはうまくいきます。
殺す-9 ` acx | grep -i cassandra | awk '{print$1}'
`