Systemd及service文件解析
Systemd是linux下的一款系统和服务管理器,兼容SysV和LSB的启动脚本。Systemd的特征有:支持并行化任务;同时采用socket式与D-Bus总线式激活服务;按需启动守护进程(daemon);利用Linux的cgroups监视进程;支持快照和系统恢复;维护挂载点和自动挂载点;各服务间基于依赖关系进行精密控制。
其中的监视和控制功能的主要命令就是systemctl。
Systemd有很多不同类型的使用单元,主要包括:系统服务(.service)、挂载点(.mount)、sockets(.sockets)、系统设备(.device)、交换分区(.swap)、文件路径(.path)、启动目标(.target)。当然一般我们常用的就是其中的系统服务。
对于系统服务而言,比较重要的就是其中的service文件。那么我们先来看一个httpd.service文件,所在目录:/usr/lib/systemd/system/。其实单元文件可以从两个地方进行加载,优先级从低到高分别是:
/usr/lib/systemd/system/ :软件包安装的单元
/etc/system/system/ :系统管理员安装的单元
[Unit]
Description=The Apache HTTP Server
After=network.target remote-fs.targetnss-lookup.target