단위 템플릿 및 비템플릿 대상 단위

단위 템플릿 및 비템플릿 대상 단위

나는 사용자 정의 단위 파일을 /etc에서 떨어진 자체 디렉토리에 보관하는 것을 좋아합니다. 247에서는 다음과 같은 것을 사용하는 것이 효과적입니다.

systemctl enable /path/to/unit.service

이는 템플릿, 심지어 관련 타이머가 있는 템플릿에도 적용됩니다.

systemctl enable /path/to/timed-unit@.*

그런 다음 인스턴스화합니다.

systemctl enable [email protected]

그러나 252에서 경로 이름을 사용하여 파일을 활성화하려고 하면 다음 오류가 발생합니다.

Failed to enable unit: Destination unit timers.target is a non-template unit.

또는:

Failed to enable unit: Destination unit multi-user.target is a non-template unit.

문서 [1]에는 템플릿이 서비스를 나열하는 경우(이 경우 s를 통해 ) 활성화되면 또는 인스턴스를 제공 WantedBy해야 한다고 명시되어 있습니다. DefaultInstance이는 의미가 있으므로 동작이 강화되었거나 252에서 버그가 수정되었습니다.

그러나 경로에 인스턴스를 제공하면 예상대로 파일을 찾을 수 없음 오류가 발생합니다. 아마도 직접 심볼릭 링크를 생성할 수 있지만 나중에 인스턴스에서 활성화할 수 있도록 파일 시스템에 단위 파일을 등록하도록 systemd를 얻을 수 있는 방법이 있습니까?

[1]https://www.freedesktop.org/software/systemd/man/systemd.unit.html#%5BInstall%5D%20Section%20Options

답변1

파일 시스템의 템플릿 단위는하다등록되었지만 오류 메시지/출력이 변경되어 승인되지 않았습니다.

따라서 인스턴스를 활성화한 후에는 이전과 동일하게 작동합니다.

답변2

AFAIK, 템플릿 단위를 활성화할 수 없어야 하며 인스턴스 단위만 활성화할 수 있어야 합니다. 템플릿 자체는 자체적으로 시작할 수 있는 실제 단위가 아니기 때문입니다.

템플릿 단위를 활성화하는 대신(시스템에서 심볼릭 링크를 생성하여 실제 파일을 찾을 수 있도록 하기 위한 것임) 이 목적을 위해 특별히 명령을 /etc사용해 보십시오 .systemctl link

관련 정보