upstart
현재 사용하기 위해 과제를 다시 작성하고 systemd
있는데 다음 사항을 알고 싶습니다.
"기본" 위치는 어디입니까?EnvironmentFile
?
들어갈 수도 있다/etc/environment
/etc/systemd/service
.or 의 다른 모든 서비스 파일과 함께 있을 수 있지만 /run/systemd/system
해당 위치에는 /lib/systemd/system
다른 내용이 표시되지 않습니다 .EnvironmentFile
Service
나도 논쟁 /etc/default/
했거나/etc/<PACKAGE_NAME>
그것을 넣을 문서화된 "정상적인" 장소가 없습니다. 내가 본 많은 예제는 재부팅 시 지워지고 파일은 부팅이나 재부팅 시 참조될 수 /tmp/<FILE_NAME>
있도록 보존되어야 하기 때문에 이해가 되지 않는 것 같습니다./tmp
Service
배경: 설치하기 전에 설치 전(관리자 스크립트를 사용하여) 데비안 패키지를 구축하고 EnvironmentFile
있으며 서비스가 시작/다시 시작될 때마다 이 파일을 사용할 수 있어야 한다는 것을 알고 있습니다.
답변1
시스템화된 사람들은 환경 파일을 좋아하지 않습니다.
그래서 하나도 없습니다.
수년에 걸쳐 일부 systemd 사람들은 환경 파일이 애초에 systemd에 제공해서는 안 되는 메커니즘이라고 공개적으로 밝혔습니다.
결국 기본 systemd 메커니즘은 서비스 단위 파일 자체이며, 여기서 환경 변수는 Environment=
키를 통해 설정됩니다. 그들의 의견으로는 관리자가 정의한 변수나 시스템별 변수를 사용하여 서비스 환경을 사용자 정의하는 것은 단순히 .conf
장치의 스니펫 파일을 넣은 다음 더 많은 키를 사용하여 다른 환경 변수를 설정하는 문제일 뿐입니다 Environment=
.
(하지만 솔직히 콘텐츠를EnvironmentFile=
.[…]/etc/sysconfig
정말로 사라져야 할 붉은 증오주의 도 있습니다 . 전체 개념에 결함이 있습니다. 새로운 것을 추가하면/run/sysconfig/
확실히 더 나빠질 것입니다. )
EnvironmentFile=
아마 처음부터 추가하지 말았어야 했을 겁니다. 패키저는 유닛 파일이 관리 구성의 적용을 받고 관리 구성으로 취급되어야 하며, 유닛 파일의 구성을 별도의 파일로 분할하는 것은EnvironmentFiles=
불필요한 간접적인 매우 무의미한 게임이라고 오해합니다.
— 레나르트 페틀링(2015-12-09)."환경 파일"에 대한 쿼리. systemd - 개발.
를 사용하는— 레나르트 페틀링(2015-07-22).전체 유닛 파일에 변수를 추가하는 것을 고려해 보세요.. 시스템 오류 #618. GitHub.EnvironmentFile=
것은 거의 항상 나쁜 생각이며 패키지 제작자가 우리가 제거하려는 바로 그 광기를 다시 도입하도록 유도하므로 결코 추가해서는 안 됩니다/etc/default/
./etc/sysconfig/
보너스 콘텐츠
daemontools 세계에는 환경이 있습니다.목차물론 읽으려면 envdir
/ 명령을 사용하십시오. s6-envdir
daemontools의 표준이나 요구사항은 아니지만,관습일부 도구와 일관되게 사용할 수 있는 접근 방식은 환경 디렉터리의 이름을 지정하고 env
프로그램 및 기타 콘텐츠와 함께 서비스 디렉터리에 위치하는 것입니다.run