web-dev-qa-db-ja.com

サービスとしてのApacheの起動はSIGWINCHで終了します

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
[email protected] 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で実行されています。私は自分でApacheをコンパイルしました。 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'
12
Peter VARGA

systemdは、Apacheにgraceful-stopで停止するように指示しています。これにより、SIGWINCH信号が生成され、ログcaught SIGWINCH, shutting down gracefullyが生成されます。 (SIGWINCH信号はApacheによって(ab)使用されます)

IMO、構成エラーを含む別のエラーの可能性があり、それを停止させると、正常な動作である関連する症状が表示されます。

Apacheエラーログをよく読むことをお勧めします。通常、デフォルトではSLESの/var/log/Apache2ディレクトリの下にあります。

2
Rui F Ribeiro

RedHat で報告されている同様の問題を発見しました。ステータス「NOTABUG」でクローズされました。最終的に間違った構成として認識されます。

img#1 1


img#2 2


img#3 3


更新

serverfault で報告されている同様の問題がもう1つ見つかりました。そして、その答えの1つを下の画像に示します。

img 1/1 enter image description here

1
user147505

Red Hatバグレポート のコメントから Tomaszの回答 へのリンク:

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でも動作します)。

0
luds