You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本中停止本地Cassandra的命令及PID获取方式

Cassandra本地停止操作相关说明
  • 标准停止命令
    优先用官方自带的运维命令停止,避免直接杀进程导致内存数据未落盘丢失、节点下次启动故障:

    • 通用优雅停止:直接执行nodetool stopdaemon,执行后会自动刷写内存数据、处理完存量请求后关闭进程,适配所有安装模式。
    • 系统服务托管场景:如果是用yum/apt安装、默认注册了系统服务的Cassandra,直接执行sudo systemctl stop cassandra(systemd环境)或者sudo service cassandra stop(老版本init环境)即可。
    • 二进制包部署场景:如果是tar包解压部署、没配置全局环境变量,直接进入Cassandra安装目录执行./bin/stop-server就行。
  • 无PID停止命令说明
    上面列的三种官方停止方式都不需要手动传入PID,是生产环境推荐的停止方案,非必要不要直接用kill命令终止进程。

  • Shell脚本获取Cassandra PID的方法
    如果遇到进程卡死、官方停止命令失效等特殊场景需要拿PID做强制终止,两种方式稳定可用:

    1. 启动时指定了PID文件的场景:如果启动Cassandra时加了-p参数指定PID文件路径(比如cassandra -p /opt/cassandra/run/cassandra.pid),直接读取文件即可拿到PID,写法为cassandra_pid=$(cat /opt/cassandra/run/cassandra.pid),这种方式准确率100%,不会误匹配其他进程。
    2. 未配置PID文件的场景:通过Cassandra主进程的固定类名匹配获取,避免误匹配到带cassandra关键词的其他进程(比如grep进程、客户端命令进程),命令如下:
      # 匹配Cassandra服务主进程拿PID
      cassandra_pid=$(ps aux | grep org.apache.cassandra.service.CassandraDaemon | grep -v grep | awk '{print $2}')
      # 也可以用pgrep简化写法
      cassandra_pid=$(pgrep -f CassandraDaemon)
      

内容的提问来源于stack exchange,提问作者ToastedBeans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 10:15:34