/var/run의 디렉토리가 시작 시 사라지거나 생성되지 않는 원인은 무엇입니까? (센트OS 7.3)

/var/run의 디렉토리가 시작 시 사라지거나 생성되지 않는 원인은 무엇입니까? (센트OS 7.3)

오늘 문제가 발생했습니다. /var/run/httpd파일 누락으로 인해 Apache를 로드할 수 없습니다. 수많은 사냥 끝에찾다오류가 발생하는 이유는 ( [Tue Jul 25 00:06:31.574386 2017] [auth_digest:error] [pid 6179] (2)No such file or directory: AH01760: failed to initialize shm - all nonce-count checking, one-time nonces, and MD5-sess algorithm disabled)입니다.

/var/run/mysql그런 다음 MariaDB에는 디렉터리가 없고 PostgreSQL에는 디렉터리가 없는 것을 확인했습니다 .잃어버린그 디렉토리.

시스템 시작 시 생성되지 않거나 재부팅 사이에 저장되지 않는 원인은 무엇입니까?

나는하지 않을 것이다예상되는이 제안에 따라 초기화 스크립트를 수정해야 합니다.질문.

편집 : ls -dl /var/run&의 출력ls -dl /run

lrwxrwxrwx. 1 root root 6 Dec 15  2015 /var/run -> ../run
drwxr-xr-x 25 root root 800 Jul 26 03:40 /run

답변1

{/var,}/run은 시작 시 systemd에 의해 증발됩니다. 그렇게 낮은 가치에 비해 정말 놀랍고 전혀 예상치 못한 놀라움입니다.

부팅 후 디렉토리가 존재하는지 확인하려면 systemd의 tmpfiles 부분에 무언가를 연결해야 합니다.

/usr/lib/tmpfiles.d/httpd.conf
::::::::::::::
d /run/httpd   710 root apache
d /run/httpd/htcacheclean   700 apache apache

/usr/lib/tmpfiles.d/mariadb.conf
::::::::::::::
d /var/run/mariadb 0755 mysql mysql -

그리고 tmpfiles 항목이 누락된 경우에는 자신의 패키지를 수동으로 롤링하고 모든.single.release에 대해 패키지를 조정, 테스트 및 업그레이드하게 될 것입니다. 이것이 규모나 SLA에 관한 모든 것에 일반적으로 나쁜 아이디어라는 데 동의하는 한 그것도 좋습니다.

답변2

이러한 구성 파일은 /usr/lib/tmpfiles.d 및 /etc/tmpfiles.d/에 있습니다.

부팅 시 자동으로 설치/실행하려면 systemd-tmpfiles-setup.service를 차단 해제하고 활성화해야 합니다. systemctl unmask systemd-tmpfiles-setup.service systemctl enable systemd-tmpfiles-setup.service

답변3

수정이 아니라 수정입니다.

다른 SE 사이트, 포럼, 뉴스 그룹 등을 검색한 후 이것이 로컬 및 원격 파일 시스템의 마운트 순서와 관련이 있는지 궁금합니다. (이 서버에는 한 쌍의 CIFS 공유가 마운트되어 있으며 각각 하위 디렉토리가 있습니다.) 바인딩)이 다른 곳에 설치됨).

CIFS 공유를 위로 밀고 /etc/fstab모든 바인드 마운트를 맨 아래로 옮겼습니다.

그런 다음 재부팅합니다.

이제 /runaka는 /var/run예상대로 작동하고 있습니다.

나는 아니에요알다편집은 /etc/fstab중요합니다. 하지만 제가 아는 한, 편집은 유일한 실질적인 변화입니다.

답변4

/var/run은 일시적인 임시 디렉토리로 간주됩니다.

tmpfiles.d다음 디렉터리를 포함하여 휘발성 파일과 임시 파일의 생성, 삭제 및 정리를 구성하는 데 사용됩니다./var/run

/etc/tmpfiles.d의 파일은 와 동일한 이름의 파일을 덮어씁니다 . 의 파일은 이 논리를 사용하여 공급업체 패키지에서 설치된 구성 파일을 재정의할 수 있는 로컬 관리자용으로 예약되어 있습니다. 원천:/usr/lib/tmpfiles.d/run/tmpfiles.d/etc/tmpfiles.d
https://www.systutorials.com/docs/linux/man/5-tmpfiles.d/

cat기존 구성 /usr/lib/tmpfiles.dls -l /var/run권한을 사용하여 적절한 권한을 결정할 수 있습니다.

새 파일을 생성 [name]하거나 예제를 기반으로 합니다 httpd./etc/tmpfiles.d/usr/lib/tmpfiles.d/screen

httpd

# httpd  needs directory in /run  
d /run/httpd 0775 root apache

일반적인

# [name] needs directory in /run  
d /run/[name] [perms] [user] [group]

관련 정보