linux 服务编程pdf,linux编写systemd下服务脚本.pdf

linux编写systemd下服务脚本

linux编写systemd 下服务脚本

Red Hat Enterprise Linux 7 (RHEL 7)已经将服务管理工具从SysVinit 和Upstart 迁移到

了 systemd 上,相应的服务脚本也需要改变。前面的版本里,所有的启动脚本都是放在

/etc/rc.d/init.d/ 目录下。这些脚本都是bash 脚本,可以让系统管理员控制这些服务的状态,

通常,这些脚本中包含了start,stop,restart 这些方法,以提供系统自动调用这些方法。但

是在RHEL 7 中当中已经完全摒弃了这种方法,而采用了一种叫unit 的配置文件来管理服务。

1. Systemd 下的unit 文件

Unit 文件专门用于systemd 下控制资源,这些资源包括服务(service)、套接字(socket) 、

设备(device)、挂载点(mount point) 、自动挂载点(automount point)、交换文件或分区(a swap

file or partition)…

所有的 unit 文件都应该配置[Unit]或者[Install]段. 由于通用的信息在[Unit]和[Install] 中

描述,每一个unit 应该有一个指定类型段,例如[Service]来对应后台服务类型unit.

1.1. unit 类型如下:

service :守护进程的启动、停止、重启和重载是此类 unit 中最为明显的几个类型。

socket :此类 unit 封装系统和互联网中的一个socket 。当下,systemd 支持流式, 数

据报和连续包的AF\_INET,AF\_INET6,AF\_UNIXsocket 。也支持传统的 FIFOs 传输模式。每

一个 socket unit 都有一个相应的服务 unit 。相应的服务在第一个“连接”进入 socket 或

FIFO 时就会启动(例如:nscd.socket 在有新连接后便启动 nscd.service) 。

device :此类 unit 封装一个存在于 Linux 设备树中的设备。每一个使用 udev 规则

标记的设备都将会在 systemd 中作为一个设备 unit 出现。udev 的属性设置可以作为配置

设备 unit 依赖关系的配置源。

mount :此类 unit 封装系统结构层次中的一个挂载点。

automount :此类 unit 封装系统结构层次中的一个自挂载点。每一个自挂载 unit 对

应一个已挂载的挂载 unit (需要在自挂载目录可以存取的情况下尽早挂载) 。

target :此类 unit 为其他 unit 进行逻辑分组。它们本身实际上并不做什么,只是引

用其他 unit 而已。这样便可以对 unit 做一个统一的控制。(例如:multi-user.target 相当于

在传统使用 SysV 的系统中运行级别5);bluetooth.target 只有在蓝牙适配器可用的情况下

才调用与蓝牙相关的服务,如:bluetooth 守护进程、obex 守护进程等)

snapshot :与 targetunit 相似,快照本身不做什么,唯一的目的就是引用其他 unit 。

2. 认识service 的unit 文件

2.1. 扩展名:.service

路径:

/etc/systemd/system/* ―――― 供系统管理员和用户使用

/run/systemd/system/* ―――― 运行时配置文件

/usr/lib/systemd/system/* ―――― 安装程序使用 (如RPM 包安装)

以 下 是 一 段 service unit 文 件 的 例 子 , 属 于

/usr/lib/systemd/system/NetworkManager.service 文件,它描述的是系统中的网络管理服务。

[Unit]

Descr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值