하드 재부팅 후 / var / run의 디렉토리가 삭제됩니다.


19

스핑크스 pid를 /var/run/sphinx/searchd.pid에 유지하지만 하드 재부팅 할 때마다 / var / run / sphinx 디렉토리가 사라지고 스핑크스가 시작되지 않습니다. 해당 디렉토리를 고정 시키거나 자동으로 작성하는 방법이 있습니까? 사람들은 일반적으로이 상황을 어떻게 처리합니까? 우분투 하디를 사용합니다

ubuntu  pid 

당신은 우리에게 출력을 줄 수 있습니까 mount?
reconbot

답변:


18

이 디렉토리는 의도적으로 임시입니다. 여러 컨텐츠의 제어 스크립트가 어떤 프로세스에서 신호를 보내야하는지 확인하기 때문에 내용이 여러 부트에 걸쳐 붙어 있으면 모든 종류의 추악한 효과가 발생할 수 있습니다. 최근 시스템에서이 임시 특성은로 마운트 /var/run하여 적용되는 tmpfs반면, 이전 시스템은 시작시 디렉토리의 모든 항목을 삭제했습니다.

따라서 스핑크스 또는 시작 스크립트를 구성하여 해당 디렉토리를 만들거나 PID 파일을 /var/run직접 작성해야 합니다.


4
/ var / run에 대한 설명은 +1입니다. 그러나 그는 PID 파일이 재부팅 동안 지속되는 것을 원하지 않습니다. 그냥 스핑크스 디렉토리.
Steve Folly

15

최소한 두 번의 기회가 있습니다.

  • init 스크립트를 변경하여 mkdir -p /var/run/sphinx/

또는

  • 설정 pid_file = /var/run/sphinx-searchd.pid에서/etc/sphinx.conf

나는 두 번째입니다.


2
물론 이것은 / var / run에 직접 쓰거나 디렉토리를 만들 수 있도록 시작 스크립트가 루트로 실행되어야 함을 의미합니다. 성가신 ...
Eloff

나는 두 번째 해결책도 선택했다. 이것에 우선 순위가있는 것처럼 보입니다 (cron, ssh, atd, syslog).
BillMan

2

이제 임시 파일 및 이와 같은 디렉토리를 작성하기위한 중앙 집중식 메커니즘이 있습니다. 이 방법을 사용하려는 서비스는 자체 시작 스크립트에서 mkdir 명령을 제거하고 대신 우분투를 사용하여 /etc/tmpfiles.d, /run/tmpfiles.d 또는 /usr/lib/tmpfiles.d에 .conf 파일을 넣을 수 있습니다. 서비스는 마지막 옵션을 선호하는 것 같습니다. 귀하의 경우 파일을 만듭니다 /usr/lib/tmpfiles.d/sphinx.conf.
파일 내용은 다음과 같습니다.
d /var/run/sphinx 0755 root root

여기는 d디렉토리를 나타내며 그 옆에는 경로, 권한, 소유자 및 그룹이 있습니다. 재부팅시 디렉토리
가 생성됩니다 /var/run/sphnix.

전체 문서 tmpfiles.d를 확인하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.