$UPSTART_JOB에 해당하는 시스템은 무엇입니까?

$UPSTART_JOB에 해당하는 시스템은 무엇입니까?

DRY 원칙에 따라 약간 다른 시스템 구성 을 만드는 것보다 다른 이름을 가진 시스템 구성에 대한 심볼릭 링크나 하드 링크를 사용하는 것이 좋습니다 myservice1.service.myservice2.service

$0SysV initscripts를 사용하면 시작 스크립트의 이름을 결정하는 데 사용할 수 있고 .confUpstart 파일을 사용하는 자동 변수가 있지만 $UPSTART_JOBsystemd 문서에서 비슷한 것을 검색했지만 성공하지 못했습니다. 어떤 아이디어가 있나요?

답변1

Systemd에는 단일 단위 파일이 인수를 수락하고 다른 인스턴스를 시작할 수 있는 템플릿이 있습니다. 전형적인 예는 getty입니다.

~ systemctl cat [email protected] | grep Exec
ExecStart=-/sbin/agetty --noclear %I $TERM

이렇게 하면 systemctl start getty@tty7서비스를 시작하기 전에 systemd로 대체됩니다 %I.tty7

귀하의 파일에서 이를 사용하는 것이 더 쉬울 것입니다 myservice.service. 이름을 지정하고 [email protected]명령줄에서 or 를 적절히 사용하십시오 %I.%iExecStart

관련된:

답변2

%p(이스케이프됨) 또는 (이스케이프되지 않음) .from %P과 동일$UPSTART_JOBSystemd 단위 및 단위 파일 이해:


관련 정보가 포함된 인스턴스 단위를 해석할 때 대체되는 보다 일반적인 지정자는 다음과 같습니다.

  • %n: 전체 결과 단위 이름이 템플릿 파일에 나타날 때마다 삽입됩니다.
  • %N: 위와 동일하지만 모든 이스케이프(예: 파일 경로 패턴에 있는 것과 같은)가 취소됩니다.
  • %p: 유닛 이름 접두어를 나타냅니다. @단위명칭 중 기호 앞에 오는 부분 입니다 .
  • %P: 위와 동일하지만 이스케이프가 반대로 수행됩니다.
  • %i@: 인스턴스 단위 뒤에 오는 식별자인 인스턴스 이름을 나타냅니다. 이는 동적임을 보장하기 때문에 가장 일반적으로 사용되는 지정자 중 하나입니다. 이 식별자를 사용하면 구성에 중요한 식별자를 사용할 수 있습니다. 예를 들어 서비스가 실행될 포트를 인스턴스 식별자로 사용할 수 있으며 템플릿은 이 지정자를 사용하여 포트 사양을 설정할 수 있습니다.
  • %I: 이 지정자는 위와 동일하지만 이스케이프는 반대입니다.
  • %f: 이스케이프 처리되지 않은 인스턴스 이름이나 접두사가 붙은 이름으로 대체됩니다 /.
  • %c: 장치의 제어 그룹을 나타내며 /sys/fs/cgroup/systemd/표준 상위 계층 구조를 제거합니다.
  • %u: 장치를 실행하도록 구성된 사용자의 이름입니다.
  • %U: 위와 동일하지만 이름 대신 숫자 UID를 사용합니다.
  • %H: 이 장치가 실행 중인 시스템의 호스트 이름입니다.
  • %%: 리터럴 백분율 기호를 삽입하는 데 사용됩니다.

템플릿 파일에서 위 식별자를 사용하면 systemd는 템플릿을 해석하여 인스턴스 단위를 생성할 때 올바른 값을 채웁니다.


신용은 간다무루내 검색 결과를 향상시키는 "템플릿" 참조를 받으세요.

관련 정보