Programing

내 pidfile이 / var / run에 있어야합니까?

lottogame 2020. 11. 5. 07:38
반응형

내 pidfile이 / var / run에 있어야합니까?


나는 기술적으로나 스타일 적으로 두 가지 맥락에서 질문하고 있습니다.

내 응용 프로그램 / 데몬이 pidfile을 유지할 수 있습니까 /opt/my_app/run/?

그렇게하는 것이 매우 나쁜가요?

내 필요는 이것이다. 내 데몬은 특정 사용자로 실행되고 구현자는 /var/run, chown 및 chgrp 에 새 디렉토리를 mkdir하여 데몬을 실행해야합니다. pidfile을 (데몬에) 로컬로 유지하는 것이 더 쉽습니다.


같은 응용 프로그램 설치 디렉토리에 pidfile을 넣지 않을 것 /opt/my_app/whatever입니다. 이 디렉토리는 읽기 전용으로 마운트 될 수 있고, 머신간에 공유 될 수 있으며, 변경 사항을 가능한 침입 시도로 처리하는 데몬에 의해 감시 될 수 있습니다.

pidfile의 일반적인 위치는 /var/run. 대부분의 유니스는 부팅시이 디렉토리를 정리합니다. 우분투에서는 /var/run메모리 내 파일 시스템 (tmpfs)에 의해 수행됩니다 .

루트로 실행되는 스크립트에서 데몬을 시작하는 경우 하위 디렉토리를 만들고 /var/run/gmooredaemon데몬을 실행하는 사용자가 사용자에게 전달하고 데몬 su을 시작 하기 전에 하위 디렉토리를 만들 도록합니다.

루트로 실행하지 않는 스크립트 나 실행 프로그램에서 데몬을 시작하면 많은 현대 리눅스 시스템에서, 당신의 pidfile 넣을 수 있습니다 /run/user/$UID기존의 사용자 별 것과 같습니다 /var/run. 런처의 루트 부분 또는 루트로 실행되는 부트 스크립트는 디렉토리를 생성해야합니다 (사용자의 경우 사용자가 로그인 할 때 디렉토리가 생성됨).

그렇지 않으면 /tmp또는 아래의 위치를 ​​선택하십시오 /var/tmp. 그러나 이것은 pidfile의 이름이 세계에서 쓸 수있는 디렉토리에있는 경우 고유하게 결정할 수 없기 때문에 추가적인 복잡성을 야기합니다.

어떤 경우 든 배포 자나 관리자가 pidfile 위치를 쉽게 변경할 수 있도록 (명령 줄 옵션과 컴파일 시간 옵션 포함) 만드십시오.


/ opt는 '자체 포함'응용 프로그램을 설치하는 데 사용되므로 여기서는 잘못된 것이 없습니다. 사용 /opt/my_app/etc/, 설정 파일에 대한 /opt/my_app/log/로그를 등 - 일반적인 관행을 응용 프로그램의 종류.

이렇게하면 모든 패키지 관리자에 대한 패키지를 유지하는 대신 TGZ 파일로 애플리케이션을 배포 할 수 있습니다 (태그를 지정한 이후 적어도 DEB ubuntu). 사내 응용 프로그램이나 환경을 잘 제어 할 수있는 상황에 권장합니다. 그 이유는 안전 비용이 안에 넣는 것보다 더 많은 비용이 든다면 말이되지 않기 때문입니다 (응용 프로그램을 포장하는 데 필요한 작업이 응용 프로그램을 작성하는 데 필요한 노력을 넘어서는 안됩니다).


pid 파일의 위치는 구성 가능해야합니다. / var / run은 pid 파일의 표준이며 / var / log가 로그의 표준 인 것과 같습니다. 그러나 데몬은 일부 구성 파일에서이 설정을 덮어 쓸 수 있도록해야합니다.


스크립트를 루트로 실행하지 않는 경우 또 다른 규칙은 pidfile을 ~/.my_app/my_app.pid. 이 방법은 더 간단하지만 홈 디렉토리는 세계에서 쓸 수 없기 때문에 여전히 안전합니다.

참고 URL : https://stackoverflow.com/questions/5173636/must-my-pidfile-be-located-in-var-run

반응형