systemd는 스크립트 경로를 지원합니다

systemd는 스크립트 경로를 지원합니다

yocto 기반 배포판의 초기화 시스템을 SysV init에서 systemd로 전환하고 있습니다. 일부 오래된 SysV init bash 스크립트를 살펴보면서 해당 스크립트를 완전히 제거할 수 없다는 것을 깨달았습니다. 때로는 서비스의 실행 파일 ETC를 호출하기 전에 작업을 수행해야 하는 경우도 있습니다(예: u-boot 환경 변수 값 읽기). ). 또한 서비스의 실행 파일이 동일한 환경에서 실행되어야 하기 때문에(즉, u-boot 변수 값이 매개 변수로 전달됨) 여러 단계로 분할할 수 없습니다(일부 부분을 ExecStartPre로 이동함). 그래서 나는 이러한 단계를 수행하고 exec마지막에 주요 실행 파일을 생성하는 "래퍼" bash 스크립트로 끝납니다 .

이 유형의 스크립트에 대한 권장 사항이 있습니까? 나는 그것들을 이전 버전에 보관하고 싶지 않으며 그것들 이나 그에 상응하는 항목을 /etc/init.d넣고 싶지도 않습니다 . 이러한 위치 중 하나는 사용자를 속여 실행하도록 할 수 있으므로 나는 그것을 피하고 싶습니다. 나는 특정 시스템 장치 전용 경로에 파일을 저장하는 것을 선호합니다. 내가 생각할 수 있는 가장 좋은 방법은 또는 이지만, 그것이 좋은 생각인지 잘 모르겠습니다./bin/sbin/usr/lib/systemd/system/<unit>.d//etc/systemd/<unit>.d/

또한, 부가 질문으로, 하드코딩하는 대신 해당 스크립트 경로에 해당 이름을 사용할 수 있도록 유닛 파일에서 유닛 이름을 가져올 수 있는 방법이 있습니까? 템플릿에서 인스턴스화된 셀이 이를 제공할 수 있을 것 같지만 그러한 모든 셀에 템플릿을 사용하고 싶지는 않습니다.

관련 정보