systemd 장치를 설정해야 하는 bash 스크립트 기반 설치 프로그램을 만들고 있습니다. /etc/systemd/system
또는 같은 일반적인 시스템 단위 파일 위치를 하드코딩할 수 있지만 /usr/lib/systemd/system
새 단위 파일 및 서비스를 추가하기 위해 시스템이 선호하는 위치를 감지할 수 있는 스크립트를 원합니다.
기존 서비스 단위 파일을 사용하고 찾아서 이 작업을 수행할 수는 있지만 find
호출할 수 있는 기존 전역 변수가 이미 있는 경우(예를 들어) 너무 복잡해지지 않도록 하고 싶습니다.$HOME
답변1
내가 아는 한 모든 시스템은 동일합니다. 맨페이지는 많은 통찰력을 제공합니다. https://www.freedesktop.org/software/systemd/man/systemd.unit.html
System Unit Search Path
/etc/systemd/system.control/*
/run/systemd/system.control/*
/run/systemd/transient/*
/run/systemd/generator.early/*
/etc/systemd/system/*
/etc/systemd/system.attached/*
/run/systemd/system/*
/run/systemd/system.attached/*
/run/systemd/generator/*
…
/usr/lib/systemd/system/*
/run/systemd/generator.late/*
서비스 단위 파일을 작성하는 경우 /etc/systemd/system
"관리자 생성 시스템 단위"라는 설명을 사용하여 파일을 설치해야 합니다.
코드에는 이러한 경로의 대부분이 변경되었을 것 같지 않고 /etc/systemd/system
하드코딩된 것처럼 보이게 만드는 여러 위치가 있습니다.