systemd
在 systemd 的服务文件中,% 开头的变量是 systemd 的特定占位符,它们代表动态路径或值,可以根据运行时环境自动解析。这些占位符通常用于配置文件中的路径或参数。
以下是 systemd 中 %C 和 %L 的具体含义:
1. %C - 缓存目录
%C表示CacheDirectory,即系统的缓存目录。它是由systemd的CacheDirectory=指令定义的,通常用于存储临时缓存文件。- 如果没有明确设置
CacheDirectory=,那么%C的值可能为空。
解释
- 在 Jenkins 的配置文件中,
Environment="JENKINS_WEBROOT=%C/jenkins/war"表示 Jenkins 的 Web 根目录位于缓存目录下的jenkins/war。 %C的实际路径可以由系统动态解析。
如何确定 %C 的值
如果服务文件中设置了
CacheDirectory=,可以通过该字段解析%C。 例如:iniCacheDirectory=jenkins则
%C解析为/var/cache/jenkins。如果未设置
CacheDirectory=,则%C通常为空或默认缓存目录。
2. %L - 日志目录
%L表示LogsDirectory,即系统的日志目录。它是由systemd的LogsDirectory=指令定义的,通常用于存储服务的日志文件。- 如果没有明确设置
LogsDirectory=,那么%L的值可能为空。
解释
- 在 Jenkins 的配置文件中,
Environment="JENKINS_LOG=%L/jenkins/jenkins.log"表示 Jenkins 的日志文件位于日志目录下的jenkins/jenkins.log。 %L的实际路径可以由系统动态解析。
如何确定 %L 的值
如果服务文件中设置了
LogsDirectory=,可以通过该字段解析%L。 例如:iniLogsDirectory=jenkins则
%L解析为/var/log/jenkins。如果未设置
LogsDirectory=,则%L通常为空或默认日志目录。
3. 其他相关占位符
除了 %C 和 %L,systemd 中还有许多占位符可以使用,以下是常见的一些:
| 占位符 | 含义 |
|---|---|
%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= 定义。 |