Ubuntu 22.04下创建Cassandra systemd服务启动失败求助
解决Ubuntu 22.04中Cassandra systemd服务启动失败(状态码217/USER)的问题
问题根源
错误日志明确指向核心原因:
cassandra.service: Failed to determine user credentials: No such process
cassandra.service: Failed at step USER spawning /usr/bin/echo: No such process
systemd尝试以cassandra用户身份执行服务命令,但系统中未创建该用户,导致权限验证环节直接失败。
解决步骤
1. 创建cassandra系统用户
执行命令创建专为Cassandra服务设计的系统用户及同名用户组,同时指定用户主目录为你的Cassandra安装路径:
sudo useradd -r -m -U -d /home/a/dons/cassandra -s /bin/bash cassandra
参数说明:
-r:创建系统用户(适配后台服务进程的权限模型)-m:自动生成用户主目录-U:同步创建与用户名一致的用户组-d:指定用户主目录为Cassandra安装目录-s:设置默认Shell为bash
2. 调整目录权限
确保cassandra用户对Cassandra安装目录和数据目录拥有完整读写权限:
sudo chown -R cassandra:cassandra /home/a/dons/cassandra sudo chown -R cassandra:cassandra /data/cassandra
3. 优化systemd服务文件(可选)
原服务文件中ExecStopPost用分号拼接多命令的写法不符合systemd规范,建议拆分为独立条目;同时可根据需求移除非必要的echo日志命令,修改后的服务文件示例:
[Unit] Description=Cassandra Cluster Node Daemon [Service] Type=forking User=cassandra Group=cassandra ExecStart=/home/a/dons/cassandra/bin/cassandra ExecStopPost=/usr/bin/rm -rf /data/cassandra/saved_caches ExecStopPost=/usr/bin/echo "Cassandra Daemon Stopped" [Install] WantedBy=default.target
4. 重新加载并启动服务
sudo systemctl daemon-reload sudo systemctl start cassandra sudo systemctl status cassandra
内容的提问来源于stack exchange,提问作者best_of_man
相关产品推荐
相关产品推荐

