Skip to content

systemd

systemd 的服务文件中,% 开头的变量是 systemd 的特定占位符,它们代表动态路径或值,可以根据运行时环境自动解析。这些占位符通常用于配置文件中的路径或参数。

以下是 systemd%C%L 的具体含义:


1. %C - 缓存目录

  • %C 表示 CacheDirectory,即系统的缓存目录。它是由 systemdCacheDirectory= 指令定义的,通常用于存储临时缓存文件。
  • 如果没有明确设置 CacheDirectory=,那么 %C 的值可能为空。

解释

  • 在 Jenkins 的配置文件中,Environment="JENKINS_WEBROOT=%C/jenkins/war" 表示 Jenkins 的 Web 根目录位于缓存目录下的 jenkins/war
  • %C 的实际路径可以由系统动态解析。

如何确定 %C 的值

  1. 如果服务文件中设置了 CacheDirectory=,可以通过该字段解析 %C。 例如:

    iniCacheDirectory=jenkins

    %C 解析为 /var/cache/jenkins

  2. 如果未设置 CacheDirectory=,则 %C 通常为空或默认缓存目录。


2. %L - 日志目录

  • %L 表示 LogsDirectory,即系统的日志目录。它是由 systemdLogsDirectory= 指令定义的,通常用于存储服务的日志文件。
  • 如果没有明确设置 LogsDirectory=,那么 %L 的值可能为空。

解释

  • 在 Jenkins 的配置文件中,Environment="JENKINS_LOG=%L/jenkins/jenkins.log" 表示 Jenkins 的日志文件位于日志目录下的 jenkins/jenkins.log
  • %L 的实际路径可以由系统动态解析。

如何确定 %L 的值

  1. 如果服务文件中设置了 LogsDirectory=,可以通过该字段解析 %L。 例如:

    iniLogsDirectory=jenkins

    %L 解析为 /var/log/jenkins

  2. 如果未设置 LogsDirectory=,则 %L 通常为空或默认日志目录。


3. 其他相关占位符

除了 %C%Lsystemd 中还有许多占位符可以使用,以下是常见的一些:

占位符含义
%n服务名称,例如 jenkins.service
%N服务文件的完整路径,例如 /etc/systemd/system/jenkins.service
%u启动服务的用户,例如 jenkins
%U启动服务用户的 UID(用户 ID)。
%h启动服务用户的主目录,例如 /home/jenkins
%t系统的运行时目录,例如 /run
%p服务的 PID(进程 ID)。
%i实例名称(通常用于模板服务)。
%H主机名(hostname)。
%m机器 ID(machine ID)。
%s该服务的状态目录(通常位于 /var/lib/systemd)。
%C缓存目录,由 CacheDirectory= 定义。
%L日志目录,由 LogsDirectory= 定义。

上次更新时间:

最近更新