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


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で実行されています。私は自分で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'

どのようにSIGWINCHして致命的になったのですか?デフォルトのアクションは、信号を破棄することです。
2016

回答:


2

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

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

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


1

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

img#1 1


img#2 2


img#3 3


更新

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

img 1/1ここに画像の説明を入力してください


-DFOREGROUND私の場合は役に立ちません。Apacheは起動しますが、元に戻らないserviceためservice不満がありますapache2.service start operation timed out. Terminating.
Al Bundy

リンクのスレッドを読みましたか?

1
私はあきらめた。状況は理解していますが、どうすれば修正できるのかわかりません。私は削除したとき、私は出て見つからないExecReload=から/usr/lib/systemd/system/apache2.service、次にSIGWINCH送信されていないが、その後Apacheが起動しない-ログにエラーメッセージを、何も。起動するとすぐに終了します。apachectl -k startシステムの起動時にcronジョブとして実行するハックを実装しました。でApacheを再起動できapachectl -k restartます。後で試すつもりです。新しいアイデアが出てくるかもしれません。
Al Bundy 2016

もう1つ見つかりました。更新を参照してください。

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 Monica'を

@ G-Man私はこの回答を正しく引用するためにこの回答を編集しました。
Anthony Geoghegan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.