시스템 단위 이름에 "접두사의 최종 구성 요소"를 사용하는 예는 무엇입니까?

시스템 단위 이름에 "접두사의 최종 구성 요소"를 사용하는 예는 무엇입니까?

Systemd를 사용하면 다음에 설명된 대로 템플릿 단위를 만들 수 있습니다.시스템 장치.

템플릿 셀에서는 많은 변수를 사용할 수 있습니다.

나는 다음에 관심이 있습니다 "%j":

이는 마지막 "-"와 접두사 이름 끝 사이의 문자열입니다.

"접두사 이름"도 정의됩니다.

인스턴스화된 셀의 경우 셀 이름의 첫 번째 "@" 문자 앞에 오는 문자열입니다.

나는 확신한다무엇그것들은 불분명하다그들은 존재합니다.

나는 그들이 동일한 서비스의 여러 버전을 실행하고 있다고 추측합니다. 이것이 어떻게 사용되는지에 대한 실제 사례는 무엇입니까?

답변1

.d/장치 옆에 있는 디렉터리에 추가 설정이 있을 수 있습니다 . 예를 들어 foo.service로 확장할 수 있습니다 foo.service.d/*.conf.

템플릿 단위는 인스턴스와 템플릿이라는 두 개의 디렉터리를 사용하므로 [email protected]두 디렉터리 모두에서 확장됩니다.[email protected]/*.conf 그리고 [email protected]/*.conf. 이를 통해 셀의 모든 인스턴스 크기를 한 번에 조정할 수 있습니다. 두 경우 모두 장치와 확장 구성은 %i를 사용하여 "ttyS1" 비트를 얻을 수 있습니다.

그러나 일부 유닛은 템플릿화할 수 없습니다. 예를 들어 슬라이스(cgroup을 나타냄)는 user-<UID>.slice대신 이름이 지정됩니다 user@<UID>.slice. 왜냐하면 이러한 유닛의 이름은파일 시스템 경로(대시는 슬래시에 매핑되므로 "user-123.slice"는 "user.slice"의 하위입니다).

모든 개별 사용자 슬라이스를 구성할 수 있는 것이 바람직했기 때문에(예: 각 슬라이스에 x%의 메모리 제공) 클래스 경로 이름을 사용하는 유닛에 대해 유사한 메커니즘이 추가되었습니다. 위의 getty 예와 유사하게 유닛은 user-1000.slice양쪽에서 확장될 수 있습니다.user-1000.slice.d/ 그리고 user-.slice.d/, 후자의 일반 디렉토리에 있는 파일은 %j를 사용하여 "1000" 비트를 얻을 수 있습니다.

마지막 예는 기본 시스템 설치에서 실제로 사용됩니다.

$ systemctl cat user-1000.slice
# /usr/lib/systemd/system/user-.slice.d/10-defaults.conf
[Unit]
Description=User Slice of UID %j

답변2

한 가지 예는 이름에서 경로를 참조하는 시스템 장치일 수 있습니다. 이러한 단위에서는 가 /다음으로 대체됩니다 -(그리고 선행은 -제거됩니다). 예를 들어, 설치 단위의 /home/muru이름은 입니다 home-muru.mount. 마찬가지로 다음을 실행하면 다른 경로 기반 단위 이름을 볼 수 있습니다 systemctl list-units.

sys-devices-platform-soc-3f980000.usb-usb1-1\x2d1-1\x2d1.5-1\x2d1.5:1.0-host0-target0:0:0-0:0:0:0>
sys-devices-platform-soc-3f980000.usb-usb1-1\x2d1-1\x2d1.5-1\x2d1.5:1.0-host0-target0:0:0-0:0:0:0>
sys-devices-virtual-misc-rfkill.device          loaded active plugged   /sys/devices/virtual/misc
sys-devices-virtual-tty-ttyprintk.device        loaded active plugged   /sys/devices/virtual/tty/
sys-module-configfs.device                      loaded active plugged   /sys/module/configfs
sys-subsystem-net-devices-eth0.device           loaded active plugged   SMSC9512/9514 Fast Ethern
sys-subsystem-net-devices-wlan0.device          loaded active plugged   /sys/subsystem/net/device

많은 경우 경로의 마지막 구성 요소(예: 로 지정된 부분 %j)가 셀 내에서 유용할 수 있습니다. 실제로 그 이름을 사용하는 사람이 있는지는 모르겠지만, 예를 들어 %j, 또는 유사한 디렉토리에 대한 설정 단위 생성기의 사용자 이름을 얻는 것이 편리할 수 있습니다./home/run/user

관련 정보