您将使用什么shell命令来停止本地启动Cassandra ?有没有不用PID就能停止的?如果没有,可以使用什么命令在shell脚本中获取PID ?
请调整你的个人情况,因为你提到C *本地启动。
然而,你可以在你的脚本中使用这样的东西:
#!/bin/bash
PID=$(cat /var/run/cassandra/cassandra.pid)
sudo kill -9 $PID
如果您启动Cassandra时没有为PID指定文件,那么您将不得不做一些棘手的事情,像这样:
ps -ef | grep cassandra | grep "jmx.local.port=7199" | awk '{print $2}'
96165
基本上,您使用ps
获取所有进程的状态,grep
ping " Cassandra ",然后grep
ping一些非常特定于Cassandra进程的东西(如端口7199上的本地JMX)。然后,如果在awk
中使用管道,则可以很容易地拉出第二个以空格分隔的"列。
可能有一种更优雅的方式来做这件事,但它会工作的。
然后,作为具有cassandra进程权限的用户,您可以在该PID上运行kill
。或者,您可以将所有这些都封装到一个命令中:
kill $(ps -ef | grep cassandra | grep "jmx.local.port=7199" | awk '{print $2}')
停止本地Cassandra实例取决于安装类型。
如果您已经将Cassandra安装为YUM (RHEL/CentOS)或APT (Debian)包,使用以下命令停止服务:
$ sudo service cassandra stop
如果您使用二进制tarball安装了Cassandra,您可以简单地使用:
$ pkill cassandra
请注意,如果您以root
等其他用户运行Cassandra,则需要使用sudo
来获得提升的权限。干杯!