CentOS7 Failed to restart xxxx.service: Unit not found.解决办法 - 2021-09-17

### 解决 Linux 系统中 httpd.service 和 memcached.service 单元未找到导致无法重启的问题 #### 一、排查原因 当遇到 `httpd.service` 或者 `memcached.service` 未能正常启动的情况,通常是因为以下几个原因之一: - **服务配置文件缺失或损坏**:如果 `/etc/systemd/system/` 下缺少相应的 `.service` 文件,则会报告找不到该单元。 - **依赖关系错误**:某些情况下,其他的服务可能阻止了目标服务的启动。 - **权限不足**:执行命令使用的账户不具备足够的权限来操作这些服务。 对于 `httpd.service` 而言,在尝试启动 Apache HTTP Server 之前应该确认其安装状态以及是否存在任何配置上的问题[^1];而对于 `memcached.service` 来说,内存分配策略不当可能会引发 OOM killer 动作终止进程运行[^2]。 #### 二、解决方案 ##### 1. 验证服务存在与否及其路径正确性 可以先通过如下命令验证两个服务的状态: ```bash systemctl status httpd.service systemctl status memcached.service ``` 若提示不存在对应的 unit file,则需进一步检查是否已正确安装这两个软件包。可以通过 yum/apt-get 安装工具查询并重新安装它们: ```bash yum install httpd # 对于基于 Red Hat 的发行版 apt-get update && apt-get install apache2 # 对于 Debian 类系统 yum install memcached # 同样适用于 CentOS/RHEL/Fedora 等 apt-get install memcached # Ubuntu/Debian 用户适用此条目 ``` ##### 2. 检查日志记录寻找线索 查看系统的日志可以帮助定位具体是什么地方出现了差错。特别是针对 Apache Web Server 可能存在的配置失误,建议查阅 `/var/log/httpd/error_log` 或者更广泛的范围内的消息记录以获取更多信息[^3]: ```bash tail -f /var/log/httpd/error_log cat /var/log/messages | grep "invalid value" journalctl -xeu httpd.service journalctl -xeu memcached.service ``` ##### 3. 修改内核参数调整OOM行为(仅限必要情况) 有为了防止因内存耗尽而被杀死的关键应用程序,可以在 `/etc/sysctl.conf` 中设置特定选项改变默认的行为模式。但这一步骤应当谨慎考虑,并充分理解潜在风险后再做决定。 ##### 4. 设置开机自动加载与环境变量 确保每次系统引导后都能顺利激活所需的服务,可利用以下指令完成设定: ```bash systemctl enable httpd.service systemctl enable memcached.service chmod +x /etc/rc.d/init.d/memcached # 如果有必要的话也处理下 init script 的权限 ``` 最后再次测试能否成功开启上述两项服务: ```bash systemctl restart httpd.service systemctl restart memcached.service ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值