Day27-Linux系统服务管理知识2

systemd文件格式

  1. systemd服务单元的构成

    • systemd服务单元由三个主要部分组成:unit、service和install。
  2. unit模块

    • 定义通用选项,如描述信息、依赖关系等。
    • 常用字段包括description(描述信息)、documentation(文档信息)、after(启动顺序)、requires(依赖服务)和conflicts(冲突服务)。

    实际应用举例:在配置一个web服务时,可以在unit模块中指定该服务应该在网络服务启动之后启动(使用after字段)。

  3. service模块

    • 定义服务的具体行为,如启动、关闭、重启等。
    • 常用字段包括type(服务类型)、forking(进程派生方式)、PID File(进程号文件)、ExecStart(启动命令)、ExecReload(重新加载配置命令)和ExecStop(停止命令)。

    实际应用举例:对于一个数据库服务,可以在service模块中指定启动命令来初始化数据库,并设置PID文件以便系统能够管理该服务的进程。

  4. install模块

    • 定义启动和停止时的选项。
  5. PID文件

    • 记录服务进程的进程号(PID),方便管理和重启服务。

    实际应用举例:一个web服务器可能会创建一个PID文件,当需要重启服务时,systemd可以直接读取PID文件来找到当前运行的进程号,然后发送重启信号。

  6. 自定义服务启动文件

    • 创建自定义服务启动文件需要指定PID、启动方式和停止方式。

    实际应用举例:如果需要部署一个自定义的应用程序,可以创建一个包含unit、service和install模块的.service文件。在service模块中,指定ExecStart来启动应用程序,使用ExecStop来停止应用程序,并定义PID文件的位置。

  7. 平滑重启

    • 使用特定的信号(如SIGTERM,即信号15)来平滑重启服务,而不是强制终止进程。

    实际应用举例:对于一个正在提供服务的web服务器,可以使用平滑重启来重新加载配置文件,而不中断正在处理的连接。

  8. 服务管理

    • 使用systemd的命令如systemctl startsystemctl stopsystemctl reload等来管理服务。

    实际应用举例:如果需要重启一个名为myapp.service的服务,可以使用命令systemctl reload myapp.service来实现平滑重启。

1. CTM 文件格式

CTM 文件是 Center7 系统下软件启动时使用的启动文件。它包含三个模块:

  • Unit: 定义通用选项,如描述信息、依赖关系等。
  • Service: 定义服务,包括服务类型、启动、关闭、重启等选项。
  • Install: 定义开机制起和不开机制起的命令相关选项。

2. CTM 文件中常用字段

  • Unit:
    • Description:描述信息
    • After:启动顺序
    • Once:依赖的服务
  • Service:
    • Type:服务类型
    • PIDFile:PID 文件路径
    • ExecStart:启动服务命令
    • ExecReload:重新加载服务配置命令
    • ExecStop:停止服务命令
    • PreExecStart:启动服务前执行的命令
    • PostExecStart:启动服务后执行的命令

3. CTM 文件应用举例

以 Nginx 为例,其 CTM 文件包含以下内容:

[Unit]
Description=Nginx web server
After=network.target

[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit
User=nginx

[Install]
WantedBy=multi-user.target

解释:

  • [Unit]
    

    模块:

    • Description:描述 Nginx 的作用
    • After:表示 Nginx 应该在网络服务启动之后启动
  • [Service]
    

    模块:

    • Type:Nginx 服务类型为 forking,即会派生子进程
    • PIDFile:记录 Nginx 进程号的文件路径
    • ExecStart:启动 Nginx 服务的命令
    • ExecReload:重新加载 Nginx 配置的命令
    • ExecStop:停止 Nginx 服务的命令
    • User:Nginx 服务运行的用户
  • [Install]
    

    模块:

    • WantedBy:表示 Nginx 服务应该在多用户模式下启动

4. 自定义 CTM 文件

要自定义 CTM 文件,需要找到以下三个信息:

  • PID 文件路径
  • 启动服务的命令
  • 停止服务的命令

找到这三个信息后,就可以按照 CTM 文件的格式创建自己的 CTM 文件了。

实际应用举例

场景:

需要在 Linux 服务器上安装和启动 Nginx 服务。

步骤:

  1. 下载 Nginx 软件包并解压。
  2. 编辑 Nginx 配置文件 /etc/nginx/nginx.conf
  3. 创建 Nginx CTM 文件 /etc/systemd/system/nginx.service
  4. 重新加载 systemd 配置:
sudo systemctl daemon-reload
  1. 启动 Nginx 服务:
sudo systemctl start nginx
  1. 查看 Nginx 服务状态:
sudo systemctl status nginx

说明:

  • 步骤 1 和 2 是 Nginx 的常规安装步骤,此处省略。
  • 步骤 3 是根据上述 CTM 文件格式创建的自定义 CTM 文件。
  • 步骤 4 是为了使 systemd 识别新的 CTM 文件。
  • 步骤 5 和 6 是启动和查看 Nginx 服务状态的命令。

总结:

CTM 文件是 Linux 系统中常用的服务启动文件格式,通过学习 CTM 文件格式,可以自定义服务启动脚本,实现对服务的灵活管理。

Linux启动流程

  1. 开机加电

    • 启动流程的第一步是按下开机按钮,主板通电。
  2. BIOS检测

    • 主板通电后,计算机会加载BIOS(基本输入输出系统),BIOS负责检查硬件是否正常。

    实际应用举例:如果计算机启动时发出警报声,可能是BIOS在报告硬件故障。

  3. 启动顺序

    • BIOS中可以设置启动顺序,如硬盘、光驱或网络启动。

    实际应用举例:安装操作系统时,可能需要将光驱设为首选启动设备。

  4. 读取MBR(主引导记录)

    • BIOS会读取硬盘的第一个扇区,即MBR,其中包含了启动程序。

    实际应用举例:如果MBR损坏,计算机可能无法启动。

  5. GRUB菜单

    • MBR加载后,会出现GRUB(GRand Unified Bootloader)菜单,用户可以选择要启动的操作系统。

    实际应用举例:用户可以在GRUB菜单中选择不同的内核版本或进入恢复模式。

  6. 加密GRUB

    • 为了安全,可以对GRUB菜单进行加密,防止未授权的用户通过重启修改启动设置。

    实际应用举例:服务器管理员可能会加密GRUB以增强系统安全性。

  7. 加载内核

    • 选择启动项后,GRUB会加载内核文件及其参数。

    实际应用举例:内核加载时,可以传入特定的内核参数,如调整显示分辨率或指定特定的硬件配置。

  8. Init进程

    • 对于System V或SysVinit系统,加载内核后会启动Init进程,它是Linux的第一个进程。

    实际应用举例:Init进程负责启动后续的系统服务和进程。

  9. 读取inittab文件

    • Init进程会读取/etc/inittab文件,确定系统的运行级别。

    实际应用举例:系统管理员可以通过修改/etc/inittab来设置系统默认的运行级别。

  10. 执行系统初始化

    • Init进程会执行系统初始化,包括硬件初始化、读取配置、设置主机名等。

    实际应用举例:系统初始化过程中,网络接口会被激活,磁盘挂载会被设置。

  11. 执行运行级别脚本

    • 根据/etc/inittab文件中的设置,执行对应运行级别的脚本。

    实际应用举例:在多用户模式的运行级别,会启动网络服务和图形界面。

  12. 执行rc.local

    • 最后执行/etc/rc.local,可以在此脚本中添加启动本地服务的命令。

    实际应用举例:在/etc/rc.local中添加命令以启动一个特定的本地服务或应用。

  13. 进入运行状态

    • 所有脚本执行完毕后,系统进入运行状态,如果配置了图形界面,则加载图形界面。
  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值