apache 웹서버가 죽었다.......
콘솔에서 상태 확인 후 재시작을 했는데도 안된다....
apache 재작시 아래와 같은 메세지가 나왔다.
[~]# service httpd status
httpd is stopped
[~]# service httpd start
Starting httpd: [FAILED]
[~]# service httpd stop
Stopping httpd: [ OK ]
[~]# service httpd status
httpd is stopped
오류 내용으로 구글 검색을 해보니,
여러 경우에 대한 내용이 나왔고,
그 중 웹로그 error log도 확인을 해보라는 내용이 있어 확인 해보니,
[~]# cat /var/log/httpd/error_log
[Mon Apr 15 10:31:29 2024] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Mon Apr 15 10:31:29 2024] [error] (28)No space left on device: Cannot create SSLMutex
Configuration Failed
언젠가 한번 본 듯 한 오류 내용 이긴 한 거 같은데....
apache 웹서버 재시작(restart)가 안된다 | 써브 개발 (tistory.com)
저 때도 그랬는데.. 그걸 까먹고 해매네....
암튼,
이렇게 No space left .... 와 같은 오류가 발생 하면서 apache(httpd) 실행에 실패 할 때
semaphore 관련 설정을 확인해 본다.
//현재 설정 확인
[~]# ipcs -ls
------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 32
semaphore max value = 32767
[~]# cat /proc/sys/kernel/sem
250 32000 32 128
#현재 사용량 확인
[~]# ipcs -us
------ Semaphore Status --------
used arrays = 134
allocated semaphores = 134
설정값 128 보다 현재 사용량 134로 초과 되어 사용중으로 이런 경우 apache 재시작시 "No space .... " 관련 오류가 발생하게 된다.
해결 하기 위해서
"max number of arrays = 128" 값을 늘려 준다.
해당 설정은 "/etc/sysctl.conf"에서 적용해 준다.
kernel.sem = 250 32000 32 256
위 설정값중 맨 뒤 값을 수정해 주면 된다. 너무 크면 서버에 부담이 될 수 있으니, 적당히 올려 주고 모니터링을 해보는게 좋겠다.
설정 변경후 "/etc/sysctl.conf" 재적용 해준다.
[~]# sysctl -p
이후 apach 서비스를 다시 시작해준다.
[~]# service httpd start