Answers:
A unit configuration file whose name ends in .service encodes information about a process controlled and supervised by systemd.
系统服务单元是实际执行并跟踪程序和守护程序的单元,并使用依赖项来确保服务以正确的顺序启动。它们是最常用的单位类型。
A unit configuration file whose name ends in ".socket" encodes information about an IPC or network socket or a file system FIFO controlled and supervised by systemd, for socket-based activation.
另一方面,套接字单元实际上并不自行启动守护程序。相反,他们只是坐在那里,侦听IP地址和端口,或UNIX域套接字,当有东西连接到它时,该套接字所用的守护程序就会启动并将连接交给它。
这对于确保占用大量资源但很少使用的大型守护程序不会一直运行并占用资源,而只是在需要时才启动它们很有用。
A unit configuration file whose name ends in ".target" encodes information about a target unit of systemd, which is used for grouping units and as well-known synchronization points during start-up.
目标用于分组和排序单位。它们在某种程度上与运行级别大致等效,因为它们在不同的目标,不同的服务,套接字和其他单元处启动。与运行级别不同,它们是自由格式,您可以轻松地为订购单位创建自己的目标,而目标之间也具有依赖性。
例如,multi-user.target
大多数守护程序在其下进行分组,并且需要basic.target
将其激活,这意味着分组在其下的所有服务将在中的服务basic.target
之前启动multi-user.target
。
对于这样一个相对较新的项目,systemd的文档非常出色。要从目标开始,请从man systemd.target
:
除了单元提供的通用功能外,目标单元不提供任何其他功能。它们仅用于通过依赖关系(用作引导目标)对单元进行分组,并为单元之间的依赖关系中使用的同步点建立标准化名称。目标单元尤其是在经典SysV初始化系统中更灵活地替代SysV运行级别。
这些“单元组”涵盖了一系列不同的功能,从basic.target
本质上讲涵盖了系统启动,直至从dbus,getty,安装点到swap和计时器的所有操作。您可以使用查看完整列表man systemd.special
。
服务文件是运行由systemd控制的进程的基本单元。同样,来自man systemd.service
:
名称以.service结尾的单元配置文件编码有关systemd控制和监督的进程的信息。
这些构成可以启动,停止,重新启动,重新加载的守护程序。
最后是来自的套接字man systemd.socket
:
名称以“ .socket”结尾的单元配置文件编码有关IPC或网络套接字或由systemd控制和监督的文件系统FIFO的信息,用于基于套接字的激活。
这些覆盖文件系统或Internet上的套接字,以及传统的FIFO作为传输。每个套接字单元都有一个匹配的服务单元,如果第一个连接进入套接字或FIFO,则会启动该服务单元。
除了这些man
页面之外,值得阅读Lennart的针对Administrators的系列博客文章,该系列文章深入探讨了systemd的体系结构和实现(该系列中目前有20篇文章)。
man
页面是示例性的:您看过man systemd.{service,socket,target}
吗?