헤드리스 서버의 profile.d

헤드리스 서버의 profile.d

헤드리스 시스템에서 시작 시 실행되는 데몬에 필요한 변수를 넣는 것은 나쁜 생각입니까 /etc/profile.d/? 내가 이해한 바로는 profile.d누군가가 대화형 셸을 통해 시스템에 로그인할 때까지는 실행되지 않습니다. 그렇다면 내 데몬은 궁극적으로 시스템 변수를 저장 profile.d하고 누군가가 시스템에 로그인할 때까지 이를 설정하지 않아야 합니까, 아니면 rc.local무인 시스템에서 실행된 후에 이러한 변수를 설정합니까? (시스템은 bash를 실행하는 RHEL 6.5입니다.)

답변1

작동하지 않는다면 그것은 나쁜 생각입니다. profile.d누군가 로그인하지 않으면 실행되지 않는 것에 대한 귀하의 우려는 타당하다고 생각합니다 .

init 스크립트를 /etc/rc.d/init.d(Red Hat의 경우 올바른 디렉토리라고 생각합니다. Ubuntu에서는 /etc/init.d임)에 넣어 데몬을 시작합니다. 이 스크립트에서는 원하는 변수를 선언/정의할 수 있으며 데몬 바이너리를 시작할 때 해당 변수가 범위 내에 있어야 합니다.

링크여기프로세스가 설명되고 rc.local이 방법이 왜 우수한지 정확하게 설명됩니다.

rc.local실행이 Linux INIT로 반환되면 해당 스크립트에 설정된 변수가 더 이상 정의되지 않기 때문에 다른 답변에서 언급된 접근 방식은 작동하지 않습니다. 따라서 이는 누군가 로그인하기 전이므로 암묵적으로 profile.d가 실행되기 전입니다.

답변2

귀하의 질문에 직접 대답하려면, 그것이 작동하지 않는다면 그것은 단지 나쁜 생각입니다. 따라서 내 즉각적인 대답은 작동하지 않으면 "아니요"이고 작동하면 "예"입니다. 시도해 보셨나요? 즉, 로그인한 사람이 없으면 시스템에서 profile.d가 실행되지 않는다는 것을 확인하셨나요?

작동 방법에 대한 제안: rc.local시작 시 설정이 적용되도록 동일한 방식으로 파일을 편집합니다.

새로 일반 설치를 하면 어떤 일이 발생하든 한 번 시도해 보고 이러한 파일( profile.d또는 ) rc.local에 입력한 설정이 예상대로 적용되는지 확인해야 합니다. 작동한다면 /etc/profile.d운 좋게도 설정에서 제대로 작동할 것입니다.

이 링크linuxtopia의 온라인 책은 그것이 RHEL 6에 rc.local있음 을 나타냅니다./etc/rc.d/rc.local

관련 정보