오늘 문제가 발생했습니다. /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
모든 바인드 마운트를 맨 아래로 옮겼습니다.
그런 다음 재부팅합니다.
이제 /run
aka는 /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.d
및 ls -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]