当前位置: 首页 > news >正文

分析服务器 systemctl 启动gozero项目报错的解决方案

### 分析 `systemctl start beisen.service` 报错

在 Linux 系统中,`systemctl` 是管理系统和服务的主要工具。当我们尝试重启某个服务时,如果服务启动失败,`systemctl` 会输出错误信息,帮助我们诊断和解决问题。

本文将通过一个实际的错误日志示例来分析 `systemctl start beisen.service` 报错的原因,并提供解决方案。

#### 错误日志

```bash
● beisen.service - BeiSen Go Application
   Loaded: loaded (/etc/systemd/system/beisen.service; disabled; vendor preset: disabled)
   Active: failed (Result: start-limit) since Thu 2025-01-02 11:37:49 CST; 1s ago
  Process: 17832 ExecStart=/home/wwwroot/go/beisen/beisen-binary -f etc/beisen-api.yaml (code=exited, status=203/EXEC)
 Main PID: 17832 (code=exited, status=203/EXEC)

Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: Unit beisen.service entered failed state.
Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: beisen.service failed.
Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: beisen.service holdoff time over, scheduling restart.
Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: Stopped BeiSen Go Application.
Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: start request repeated too quickly for beisen.service
Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: Failed to start BeiSen Go Application.
Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: Unit beisen.service entered failed state.
Jan 02 11:37:49 iZ2zeburdbmlp75s387gulZ systemd[1]: beisen.service failed.
```

#### 错误分析

从错误日志中,我们可以看到以下几个关键信息:

1. **服务加载状态**:
   ```
   Loaded: loaded (/etc/systemd/system/beisen.service; disabled; vendor preset: disabled)
   ```
   服务文件 `beisen.service` 已正确加载,但当前状态为 `disabled`,表示该服务没有设置为开机自动启动。

2. **服务当前状态**:
   ```
   Active: failed (Result: start-limit) since Thu 2025-01-02 11:37:49 CST; 1s ago
   ```
   服务的状态为 `failed`,且失败的原因是 `start-limit`。这表明服务在短时间内多次尝试启动失败,导致 `systemd` 达到了重启限制。

3. **进程状态**:
   ```
   Process: 17832 ExecStart=/home/wwwroot/go/beisen/beisen-binary -f etc/beisen-api.yaml (code=exited, status=203/EXEC)
   ```
   服务启动时,尝试执行 `/home/wwwroot/go/beisen/beisen-binary -f etc/beisen-api.yaml`,但是进程退出,并返回状态码 `203/EXEC`。`203/EXEC` 错误通常表示执行文件时出错,通常是由于以下原因:
   - 文件不存在
   - 没有执行权限
   - 配置文件路径错误

4. **服务重启尝试**:
   ```
   start request repeated too quickly for beisen.service
   ```
   由于服务多次启动失败,`systemd` 判断服务启动请求过于频繁,因此停止进一步的重启尝试。

5. **服务状态**:
   ```
   Unit beisen.service entered failed state.
   ```
   服务进入了“失败”状态,无法继续运行。

#### 错误代码 `203/EXEC`

`203/EXEC` 是 `systemd` 返回的退出状态,表示执行文件时出现了问题。常见的原因包括:

- **文件路径错误**: 如果 `beisen-binary` 文件的路径不正确或文件不存在,启动会失败。
- **权限问题**: 目标执行文件可能没有正确的执行权限,导致无法启动。
- **依赖文件缺失**: 如果启动文件依赖其他文件(例如配置文件 `beisen-api.yaml`),而这些文件无法找到或权限不足,也会导致启动失败。

#### 解决方案

针对以上问题,以下是一些可能的解决步骤:

1. **检查文件路径**:
   确保 `/home/wwwroot/go/beisen/beisen-binary` 文件存在,并且路径正确。可以使用 `ls` 命令检查:
   ```bash

   ls -l /home/wwwroot/go/beisen/beisen-binary


   

2. **检查执行权限**:
   确保 `beisen-binary` 文件具有执行权限。如果没有执行权限,可以通过以下命令授予权限:
   ```bash

   sudo chmod +x /home/wwwroot/go/beisen/beisen-binary


  

3. **检查配置文件路径**:
   确保配置文件 `etc/beisen-api.yaml` 存在且路径正确。如果该文件相对路径存在问题,尝试使用绝对路径来指定配置文件。

4. **检查服务文件**:
   检查 `/etc/systemd/system/beisen.service` 中 `ExecStart` 命令的配置,确保路径没有错误,且没有遗漏的依赖文件。

5. **查看系统日志**:
   使用 `journalctl` 查看更详细的日志,帮助定位问题的根源:
   ```bash

   sudo journalctl -u beisen.service


   ```

6. **手动启动服务**:
   在命令行直接运行启动命令,检查是否有任何输出或错误信息,帮助定位问题:
   ```bash

   /home/wwwroot/go/beisen/beisen-binary -f /home/wwwroot/go/beisen/etc/beisen-api.yaml

7. **检查 `start-limit` 设置**:
   如果服务频繁失败并被限制重启,可以修改 `systemd` 的服务配置文件,调整重启策略。可以在 `beisen.service` 中添加 `StartLimitIntervalSec` 和 `StartLimitBurst` 来调整重启限制。例如:

   ```ini
   [Unit]
   StartLimitIntervalSec=500
   StartLimitBurst=5
   ```

   这样,`systemd` 会在 500 秒内允许 5 次启动尝试。

8. **重新加载 `systemd` 配置**:
   修改完服务文件后,记得重新加载 `systemd` 配置,不然启动会有警告:
   ```bash

   sudo systemctl daemon-reload


   ```

9. **新启动服务**:
   修改配置后,新启动服务:

   sudo systemctl start beisen.service

#### 总结

`systemctl restart beisen.service` 报错的关键原因是服务启动失败,退出状态为 `203/EXEC`,通常是由于文件路径错误、权限不足或配置问题引起的。通过检查文件路径、权限、配置文件,以及调整 `systemd` 重启限制,可以帮助解决该问题。在排查过程中,查看系统日志和手动运行命令能够提供更多的调试信息,帮助我们定位具体问题并快速修复。

相关文章:

分析服务器 systemctl 启动gozero项目报错的解决方案

### 分析 systemctl start beisen.service 报错 在 Linux 系统中,systemctl 是管理系统和服务的主要工具。当我们尝试重启某个服务时,如果服务启动失败,systemctl 会输出错误信息,帮助我们诊断和解决问题。 本文将通过一个实际的…...

大模型LLM-Prompt-OPTIMAL

1 OPTIMAL OPTIMAL 具体每项内容解释如下: Objective Clarity(目标清晰):明确定义任务的最终目标和预期成果。 Purpose Definition(目的定义):阐述任务的目的和它的重要性。 Information Gat…...

3. 多线程(1) --- 创建线程,Thread类

文章目录 前言1. API2. 创建线程2.1. 继承 Thread类2.2. 实现 Runnable 接口2.3. 匿名内部类2.4. lambda2.5.其他方法 3. Thread类及其常见的方法和属性3.1. Thread 的常见构造方法3.2. Thread 的常见属性3.3. start() --- 启动一个线程3.4. 中断一个线程3.5. 等待线程3.6. 休眠…...

简单的jmeter数据请求学习

简单的jmeter数据请求学习 1.需求 我们的流程服务由原来的workflow-server调用wfms进行了优化,将wfms服务操作并入了workflow-server中,去除了原来的webservice服务调用形式,增加了并发处理,现在想测试模拟一下,在一…...

智能水文:ChatGPT等大语言模型如何提升水资源分析和模型优化的效率

大语言模型与水文水资源领域的融合具有多种具体应用,以下是一些主要的应用实例: 1、时间序列水文数据自动化处理及机器学习模型: ●自动分析流量或降雨量的异常值 ●参数估计,例如PIII型曲线的参数 ●自动分析降雨频率及重现期 ●…...

民宿酒店预订系统小程序+uniapp全开源+搭建教程

一.介绍 一.系统介绍 基于ThinkPHPuniappuView开发的多门店民宿酒店预订管理系统,快速部署属于自己民宿酒店的预订小程序,包含预订、退房、WIFI连接、吐槽、周边信息等功能。提供全部无加密源代码,支持私有化部署。 二.搭建环境 系统环境…...

计算机网络掩码、最小地址、最大地址计算、IP地址个数

一、必备知识 1.无分类地址IPV4地址网络前缀主机号 2.每个IPV4地址由32位二进制数组成 3. /15这个地址表示网络前缀有15位,那么主机号32-1517位。 4.IP地址的个数:2**n (n表示主机号的位数) 5.可用(可分配)IP地址个数&#x…...

Mac中配置vscode(第一期:python开发)

1、终端中安装 xcode-select --install #mac的终端中安装该开发工具 xcode-select -p #显示当前 Xcode 命令行工具的安装路径注意:xcode-select --install是在 macOS 上安装命令行开发工具(Command Line Tools)的关键命令。安装的主要组件包括:C/C 编…...

软件项目体系建设文档,项目开发实施运维,审计,安全体系建设,验收交付,售前资料(word原件)

软件系统实施标准化流程设计至关重要,因为它能确保开发、测试、部署及维护等各阶段高效有序进行。标准化流程能减少人为错误,提升代码质量和系统稳定性。同时,它促进了团队成员间的沟通与协作,确保项目按时交付。此外,…...

计算机网络--路由表的更新

一、方法 【计算机网络习题-RIP路由表更新-哔哩哔哩】 二、举个例子 例1 例2...

CDN防御如何保护我们的网络安全?

在当今数字化时代,网络安全成为了一个至关重要的议题。随着网络攻击的日益频繁和复杂化,企业和个人都面临着前所未有的安全威胁。内容分发网络(CDN)作为一种分布式网络架构,不仅能够提高网站的访问速度和用户体验&…...

matlab离线安装硬件支持包

MATLAB 硬件支持包离线安装 本文章提供matlab硬件支持包离线安装教程,因为我的matlab安装的某种原因(破解),不支持硬件支持包的安装,相信也有很多相同情况的朋友,所以记录一下我是如何离线安装的&#xff…...

使用virtualenv创建虚拟环境

下载 virtualenv pip install virtualenv 创建虚拟环境 先进入想要的目录 一般为 /envs virtualenv 文件名 --python解释器的版本 激活虚拟环境 .\虚拟项目的文件夹名称\Scripts\activate 退出虚拟环境 deactivate...

Java链表

链表(Linked List)是一种线性数据结构,它由一系列节点组成,每个节点包含两部分:一部分为用于储存数据元素,另部分是一种引用(指针),指向下一个节点。 这种结构允许动态地添加和删除元素,而不需要像数组那种大规模的数…...

Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s

前言:纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 官方文档…...

解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域

解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域 Tomcat 配置允许跨域Web 项目配置允许跨域Tomcat 同时允许静态文件和 Web 服务跨域 偶尔遇到一个 Tomcat 部署项目跨域问题,因为已经处理…...

在C语言中使用伪终端与bash交互

了解伪终端概念: 伪终端(PTY)由一对设备组成:主设备(master)和从设备(slave)。数据写入主设备会出现在从设备,反之亦然。这允许一个进程通过主设备与另一个进程&#xff…...

阿里云 人工智能与机器学习

阿里云的 人工智能(AI)与机器学习(ML) 服务为企业提供了全面的AI解决方案,帮助用户在多个行业实现数据智能化,提升决策效率,推动业务创新。阿里云通过先进的技术和丰富的工具,支持用…...

HTML 显示器纯色亮点检测工具

HTML 显示器纯色亮点检测工具 相关资源文件已经打包成html等文件,可双击直接运行程序,且文章末尾已附上相关源码,以供大家学习交流,博主主页还有更多Html相关程序案例,秉着开源精神的想法,望大家喜欢&#…...

【漏洞分析】UDF提权漏洞——CVE-2016-6662-MySQL ‘malloc_lib’变量重写命令执行

0x00 前言 最近在做渗透笔记,其中有一个靶机在getshell后,需要进行提权。发现靶机使用root启动的mysql服务,那么尝试使用UDF提权。于是在提权成功后,花了一天时间特意搜了一下整个UDF提权的漏洞原理和利用,加深理解。…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

51c自动驾驶~合集58

我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留&#xff0c;CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制&#xff08;CCA-Attention&#xff09;&#xff0c;…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 &#xff08;一&#xff09;引用计数法 &#xff08;二&#xff09;可达性分析算法 二、垃圾回收算法 &#xff08;一&#xff09;标记清除 &#xff08;二&#xff09;标记整理 &#xff08;三&#xff09;复制 &#xff08;四&#xff…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...