SIGWINCH를 사용하여 서비스가 종료 될 때 Apache 시작


12

실행 service apache start하면 로그 파일에 다음 항목이 표시됩니다.

[mpm_event:notice] [pid 1906:tid XXX] AH00489: Apache/2.4.23 (Unix)
                         OpenSSL/1.0.2g PHP/7.0.9 configured -- resuming normal operations
[core:notice] [pid 1906:tid XXX] AH00094: Command line: '/usr/sbin/httpd'
[mpm_event:notice] [pid 1906:tid XXX] AH00492: caught SIGWINCH, shutting down gracefully

서비스 apache가 시작되지 않습니까? 인터넷에서 SIGWINCH[ Window size change]의 의미를 찾을 수 있지만이 경우에는 실제로 도움이되지 않습니다.

파일 /etc/systemd/system/apache.service:

[Unit]
Description=The Apache Webserver [FaF Compiled]
After=network.target nss-lookup.target time-sync.target
Before=getty@tty1.service plymouth-quit.service xdm.service

[Service]
Type=notify
PrivateTmp=true
ExecStart=/usr/sbin/httpd -k start
ExecReload=/usr/sbin/httpd -k graceful
ExecStop=/usr/sbin/httpd -k graceful-stop
KillMode=mixed

[Install]
WantedBy=multi-user.target
Alias=httpd.service apache.service

SLES 12 SP1에서 실행 중입니다. 나는 스스로 아파치를 컴파일했다. 시작하면 apachectl -k start완벽하게 작동하며 PHP 코드에 액세스하여 실행할 수 있습니다.

내 질문 :apache 서비스가 시작되지 않는 이유는 무엇입니까? 로 활성화했습니다 systemctl enable apache. 이것은 출력이었습니다.

ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/httpd.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/apache.service'
ln -s '/usr/lib/systemd/system/apache2.service' '/etc/systemd/system/multi-user.target.wants/apache2.service'

어떻게 SIGWINCH치명적인가? 기본 동작은 신호를 버리는 것입니다.
thrig

답변:


2

systemd신호 graceful-stop를 생성하는 아파치를 중지하도록 지시 SIGWINCH하고 따라서 로그 를 생성합니다 caught SIGWINCH, shutting down gracefully. ( SIGWINCH신호는 (ab)에 의해 사용됩니다)

IMO에서 구성 오류, 중지 및 기타 정상적인 동작과 관련된 증상을보고있는 다른 오류가있을 수 있습니다.

나는 일반적으로 디렉토리 아래의 SLES에서 Apache 오류 로그를 읽는 것이 좋습니다 /var/log/apache2.


1

RedHat 에서 비슷한 문제 가보고되었습니다 . "NOTABUG"상태로 닫힙니다. 결국 잘못된 구성으로 인식됩니다.

img # 1 1


img # 2 2


img # 3 삼


최신 정보

serverfault 에서 비슷한 문제가 하나 더 발견되었습니다 . 그리고 아래 이미지에서 답에 하나 더 있습니다.

img 1/1여기에 이미지 설명을 입력하십시오


-DFOREGROUND내 경우에는 도움이되지 않습니다. 아파치 (Apache)는 시작했지만 다시 돌아 가지 service않기 때문에 service불평합니다apache2.service start operation timed out. Terminating.
Peter VARGA

링크에서 스레드를 읽었습니까?

1
나는 포기 했어. 나는 상황을 이해하지만 그것을 고치는 방법에 대한 단서가 없습니다. 내가 제거 할 때 나는 밖으로 찾을 수 없습니다 ExecReload=에서 /usr/lib/systemd/system/apache2.service다음 SIGWINCH전송되지 않습니다하지만 아파치가 시작되지 않습니다 - 로그에 오류 메시지가, 아무것도. 시작되면 즉시 종료됩니다. 이제 apachectl -k start시스템이 시작될 때 크론 작업으로 실행하는 해킹을 구현했습니다 . 로 Apache를 다시 시작할 수 있습니다 apachectl -k restart. 나중에 다시 시도하겠습니다. 새로운 아이디어를 얻을 수 있습니다.
피터 VARGA

나는 다른 것을 하나 더 발견했다. 업데이트를 참조하십시오.

0

Tomasz의 답변 과 연결된 Red Hat 버그 보고서 에 대한 의견에서 :

httpd가 성공적으로 시작되었음을 systemd가 인식하도록하려면 00-systemd.conf를 실행해야합니다.

나는 이것을 실행했고 효과가 있었다.

ln -sr /etc/httpd/conf.modules.d/00-systemd.conf /etc/httpd/conf.d/00-systemd.conf
systemctl restart httpd

Amazon Linux 2를 사용하고 있습니다 (RHEL / Centos 7에서도 작동 할 수 있음).


크레딧을 주셔서 감사 합니다만,… 어디서 얻었습니까?
G-Man, 'Reinstate

@ G-Man이 인용문을 올바르게 표시하기 위해이 답변을 편집했습니다.
Anthony Geoghegan 2014 년
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.