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

Windows Server 2016执行stop-server命令后Cassandra服务异常重启

解决Windows Server 2016上Cassandra执行stop-server后自动重启的问题

这种情况大概率是因为你的Cassandra是作为Windows服务部署的,或者有守护进程(比如nssm、Windows服务控制管理器)在监控进程状态——当你用stop-server -p ../pid.txt -f强制终止进程后,守护机制会自动重启新的Cassandra进程来维持服务可用性。下面是具体的排查和解决步骤:

1. 确认Cassandra的运行方式

先排查Cassandra是否以服务形式运行:

  • 按下Win + R,输入services.msc回车打开服务管理器
  • 在服务列表里查找名称包含Cassandra的条目,查看它的状态是否为「运行中」

如果确实是服务运行模式,直接杀进程的操作会触发服务默认的「失败时重启」恢复策略,导致新进程立刻启动。

2. 正确的停止方法

方法一:使用官方优雅停止脚本

优先用Cassandra自带的停止脚本,它会触发优雅关闭流程(完成当前请求、刷新内存数据到磁盘),避免数据损坏:

# 切换到Cassandra的bin目录
cd C:\path\to\cassandra\bin
# 执行停止脚本
cassandra-stop.bat

方法二:通过Windows服务停止

如果是服务模式,直接操作服务是最可靠的方式:

  • 图形界面:在服务管理器中找到Cassandra服务,右键选择「停止」
  • 命令行:以管理员身份打开命令提示符,执行:
net stop "Cassandra Service"
# 替换成你实际的服务名称,比如可能是Apache Cassandra

方法三:临时禁用服务自动重启(如需用stop-server命令)

如果必须使用stop-server命令,先修改服务的恢复选项:

  1. 在服务管理器中右键Cassandra服务,选择「属性」
  2. 切换到「恢复」标签页
  3. 将「第一次失败」「第二次失败」「后续失败」都设置为「不操作」
  4. 点击「确定」保存后,再执行stop-server -p ../pid.txt -f命令

3. 额外注意事项

  • 尽量避免用-f参数强制终止Cassandra进程,这可能导致内存中未持久化的数据丢失,引发数据不一致
  • 核对pid.txt中的进程ID是否与任务管理器「详细信息」标签页里的Cassandra进程PID一致,避免误杀其他进程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:39:41