北京建设工程网站网站建设炎陵
北京建设工程网站,网站建设炎陵,建筑课堂首页,单页网站制作 在线 支付一、Linux CentOS 系统#xff0c;Systemd 配置文件模板和使用说明
在 CentOS 系统中#xff0c;systemd 是系统的初始化进程#xff08;PID 1#xff09;#xff0c;负责管理系统服务#xff08;守护进程#xff09;的启动、停止、依赖关系和开机自启等。编写 systemd…一、Linux CentOS 系统Systemd 配置文件模板和使用说明在 CentOS 系统中systemd是系统的初始化进程PID 1负责管理系统服务守护进程的启动、停止、依赖关系和开机自启等。编写systemd配置文件也称为单元文件是管理服务的核心。以下是systemd服务配置文件的通用模板、各配置项的详细说明以及使用步骤。 通用配置文件模板你可以将以下内容保存为/etc/systemd/system/your-service-name.service。[Unit] # 服务的描述信息 DescriptionMy Custom Application Service # 服务的文档地址可选 Documentationman:gitlab-ctl(1) https://example.com/docs # 指定本服务在哪些服务之后启动 Afternetwork.target docker.service # 指定本服务在哪些服务之前启动 Beforetomcat.service # 强依赖关系如果列出的服务启动失败本服务也不会启动 Requiresdocker.service # 弱依赖关系推荐使用即使依赖的服务启动失败本服务仍会尝试启动 Wantsnetwork-online.target [Service] # 服务的类型 # simple: 默认值ExecStart启动的进程为主进程 # forking: 启动命令将以fork()形式启动父进程退出子进程继续运行 # oneshot: 一次性进程执行完即结束常用于脚本 # notify: 类似simple但会等待服务通过sd_notify()发出就绪信号 Typesimple # 启动服务时执行的命令 ExecStart/usr/bin/python3 /opt/myapp/app.py # 启动前执行的命令可选 ExecStartPre/bin/mkdir -p /var/run/myapp # 停止服务时执行的命令 ExecStop/bin/kill -SIGTERM $MAINPID # 重启服务时执行的命令 ExecReload/bin/kill -SIGHUP $MAINPID # 服务的重启策略 # no: 不重启 # on-failure: 发生错误时重启推荐 # always: 总是重启 Restarton-failure # 重启前的等待时间秒 RestartSec5 # 服务运行的用户和组 Usermyuser Groupmygroup # 服务的工作目录 WorkingDirectory/opt/myapp # 环境变量文件路径可选 EnvironmentFile/etc/sysconfig/myapp # 标准输出和标准错误输出的位置 StandardOutputjournal StandardErrorjournal [Install] # 指定服务安装enable时所属的目标 # multi-user.target: 多用户文本模式 # graphical.target: 图形界面模式 WantedBymulti-user.target 配置项详细说明[Unit] 区块服务元数据与依赖Description: 服务的简短描述便于识别。After / Before: 定义服务的启动顺序。例如Afternetwork.target表示网络启动后本服务才启动。Requires / Wants: 定义服务间的依赖关系。Requires: 强依赖。如果依赖的服务启动失败本服务也不会启动。Wants: 弱依赖。即使依赖的服务启动失败本服务仍会尝试启动这是更常用的做法。[Service] 区块进程运行配置Type: 定义服务的启动类型。simple(默认):ExecStart启动的进程就是主进程。forking: 适用于传统的守护进程daemon启动命令会 fork 一个子进程然后父进程退出。oneshot: 适用于只运行一次的脚本执行完即结束。ExecStart: 启动服务时执行的命令。注意这里不能使用将进程放入后台也不能使用管道|或重定向除非在命令中用sh -c包裹。Restart: 定义服务异常退出后的重启策略。no: 不重启。on-failure: 当进程以非零退出码退出或被信号异常终止或超时时重启。最常用always: 无论何种原因退出都无条件重启。User / Group: 指定服务运行的用户和组出于安全考虑不建议使用root除非必要。WorkingDirectory: 指定服务的工作目录避免脚本中使用相对路径出错。[Install] 区块开机启动配置WantedBy: 定义服务在哪个系统目标target下启动。multi-user.target: 类似于传统的运行级别 3多用户文本模式适用于服务器。graphical.target: 类似于传统的运行级别 5图形界面模式。️ 使用步骤创建服务文件使用文本编辑器在/etc/systemd/system/目录下创建服务文件。此目录下的文件优先级最高推荐在此处创建自定义服务。sudovi/etc/systemd/system/myapp.service重新加载配置每次修改或创建服务文件后必须执行此命令让systemd重新读取配置。sudosystemctl daemon-reload启动服务sudosystemctl start myapp.service注.service后缀可以省略。设置开机自启sudosystemctlenablemyapp.service查看服务状态这是排查服务启动失败问题的最重要命令。sudosystemctl status myapp.service如果服务启动失败状态信息中通常会包含错误原因或者你可以使用journalctl查看详细日志# 查看服务的实时日志sudojournalctl -u myapp.service -f# 查看服务本次启动以来的日志sudojournalctl -u myapp.service --since today 常用管理命令速查命令说明systemctl start 服务名立即启动服务systemctl stop 服务名立即停止服务systemctl restart 服务名重启服务systemctl reload 服务名重载服务配置不中断服务systemctl enable 服务名设置开机自启systemctl disable 服务名取消开机自启systemctl status 服务名查看服务运行状态systemctl is-enabled 服务名检查服务是否设置为开机启动journalctl -u 服务名查看服务日志二、设置 MinIO Systemd 服务管理实例6.1.4 部署MinIO在server01部署MinIO安装方式采用rpm离线安装具体步骤可参考官方文档。获取MinIO安装包下载地址如下https://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm通过以下命令可直接将安装包下载至服务器wgethttps://dl.min.io/server/minio/release/linux-amd64/archive/minio-20230809233022.0.0.x86_64.rpm注若下载缓慢大家可直接使用课程资料中附带的安装包安装MinIOrpm-ivh minio-20230809233022.0.0.x86_64.rpm集成SystemdSystemd概述Systemd是一个广泛应用于Linux系统的系统初始化和服务管理器其可以管理系统中的各种服务和进程包括启动、停止和重启服务除此之外其还可以监测各服务的运行状态并在服务异常退出时自动拉起服务以保证服务的稳定性。系统自带的防火墙服务firewalld我们自己安装的mysqld和redis均是由Systemd进行管理的此处将MinIO服务也交给Systemd管理。编写MinIO服务配置文件Systemd所管理的服务需要由一个配置文件进行描述这些配置文件均位于/etc/systemd/system/或者/usr/lib/systemd/system/目录下下面创建MinIO服务的配置文件。执行以下命令创建并打开minio.service文件vim/etc/systemd/system/minio.service内容如下具体可参考MinIO官方文档。[Unit] DescriptionMinIO Documentationhttps://min.io/docs/minio/linux/index.html Wantsnetwork-online.target Afternetwork-online.target AssertFileIsExecutable/usr/local/bin/minio [Service] WorkingDirectory/usr/local ProtectProcinvisible EnvironmentFile-/etc/default/minio ExecStartPre/bin/bash -c if [ -z \${MINIO_VOLUMES}\ ]; then echo \Variable MINIO_VOLUMES not set in /etc/default/minio\; exit 1; fi ExecStart/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES Restartalways LimitNOFILE65536 TasksMaxinfinity TimeoutStopSecinfinity SendSIGKILLno [Install] WantedBymulti-user.target注意重点关注上述文件中的以下内容即可EnvironmentFile该文件中可配置MinIO服务所需的各项参数ExecStart该参数用于配置MinIO服务的启动命令其中$MINIO_OPTS、$MINIO_VOLUMES均引用于EnvironmentFile中的变量。MINIO_OPTS用于配置MinIO服务的启动选项可省略不配置。MINIO_VOLUMES用于配置MinIO服务的数据存储路径。Restart表示自动重启编写EnvironmentFile文件执行以下命令创建并打开/etc/default/minio文件vim/etc/default/minio内容如下具体可参考官方文档。MINIO_ROOT_USERminioadmin MINIO_ROOT_PASSWORDminioadmin MINIO_VOLUMES/data MINIO_OPTS--console-address :9001注意MINIO_ROOT_USER和MINIO_ROOT_PASSWORD为用于访问MinIO的用户名和密码密码长度至少8位。MINIO_VOLUMES用于指定数据存储路径需确保指定的路径是存在的可执行以下命令创建该路径。mkdir/dataMINIO_OPTS中的console-address,用于指定管理页面的地址。启动MinIO执行以下命令启动MinIOsystemctl start minio执行以下命令查询运行状态systemctl status minio设置MinIO开机自启systemctlenableminio访问MinIO管理页面管理页面的访问地址为http://192.168.10.101:9001注意ip需要根据实际情况做出修改