mod_perl 스크립트가 잠시 후 파일 시스템을 보지 않음


0

Ubuntu 16.04에서 VPS의 Apache 2.4.18에서 mod_perl 스크립트를 사용합니다. 스크립트는 디스크에서 파일을 엽니 다 (웹 페이지 템플리트). 때때로이 파일을 보지 않고 서버 오류 로그에 다음 오류가 가득 찼습니다.

[TIME] [: 오류] [PID PID : tid TID] 파일 오류 - 파일명 : 찾을 수 없음 \ n

이 메시지는 Perl이 템플릿 패키지에 의해 생성됩니다. open() 함수는 false를 반환합니다. 아파치를 다시 시작한 후에는 파일이 다시 표시되지만 잠시 동안 만 표시됩니다. 잠시 후 문제가 다시 나타납니다.

그런 행동의 이유는 무엇입니까?

답변:


2

아마도 mod_perl / apache가 파일 핸들을 제대로 닫지 않았을 수 있습니다. 잠시 후 열린 파일의 최대 용량에 도달하면 (1024 soft / 4096 hard 참조) ulimit -Sn;ulimit -Hn ) 아파치를 다시 시작하면 모든 오래된 핸들이 닫힙니다.

다음 번에 오류가 발생하면 apache / perl에서 pid를 가져 와서이 이론을 조사 할 수 있습니다.

# ps aux | grep apache

또는

# pidof apache

또는 perl 모듈에 자체 프로세스가있는 경우

샘플 출력 :

28294

PID로 열리는 목록 파일

# lsof -p 28294
# lsof -a -p 28294
# counting
# lsof -a -p 28294| wc -l

또는

# cd /proc/28294/fd
# ls -l | less
# count open files with
# ls -l | wc -l
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.