web-dev-qa-db-ja.com

DFOREGROUNDとApacheの混同

したがって、私はYumを使用してApacheを新しいCentOS 7サーバーにインストールしました。以前にApacheを何度もインストールしましたが、これを見たことはありません。ps auxを実行すると、常に表示されます

/ usr/sbin/httpd -DFOREGROUND

グーグルは、プロセスがフォアグラウンドで実行され、シェルから切り離されないことを意味すると私に言っていますが、私は本当にそれが何を意味するのかわかりません-私のシェルを閉じると、Apacheは死ぬのですか?

通常のApacheの動作を取得したいだけであり、いつものようにhttpdを実行し、バックグラウンドで動き回って、DFOREGROUNDを無効にする必要がありますか? (どうすればいいのかわからない)

16
Cocorico

-DFOREGROUNDオプションは確かにApacheがforkしないことを意味しますが、それはそれがシェルに接続されていることを意味しません!

systemctl start httpd(または古いスタイルの方法service httpd start)を実行すると、systemdによってサービスが開始されます。 Apacheが接続されているsystemdであり、systemdはその子プロセスの1つとしてプロセスを管理しています。これは、pidファイルをポーリングしたり、他の厄介なハッカーを実行したりせずに、Apacheがクラッシュしたかどうかをsystemdが簡単に判別できるようにするためです。これは、クラッシュした場合に systemdが自動的にApacheを再起動できる であることも意味します。

systemctl status httpdを実行して、ステータスを確認します。例は次のようになります。

# systemctl status httpd
httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled)
   Active: active (running) since Sat 2014-07-12 01:53:50 UTC; 1 weeks 3 days ago
  Process: 21400 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 390 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─  390 /usr/sbin/httpd -DFOREGROUND
           ├─15379 /usr/sbin/httpd -DFOREGROUND
           ├─15858 /usr/sbin/httpd -DFOREGROUND
           ├─16809 /usr/sbin/httpd -DFOREGROUND
           ├─16944 /usr/sbin/httpd -DFOREGROUND
           ├─17079 /usr/sbin/httpd -DFOREGROUND
           ├─17351 /usr/sbin/httpd -DFOREGROUND
           ├─17487 /usr/sbin/httpd -DFOREGROUND
           ├─17772 /usr/sbin/httpd -DFOREGROUND
           ├─17908 /usr/sbin/httpd -DFOREGROUND
           └─18043 /usr/sbin/httpd -DFOREGROUND

Jul 12 01:53:50 hozen httpd[390]: AH02559: The SSLCertificateChai...d
Jul 12 01:53:50 hozen httpd[390]: AH00558: httpd: Could not relia...e
Jul 12 01:53:50 hozen systemd[1]: Started The Apache HTTP Server.
Jul 13 03:30:02 hozen systemd[1]: Reloading The Apache HTTP Server.
Jul 13 03:30:02 hozen httpd[9332]: AH02559: The SSLCertificateCha...d
Jul 13 03:30:02 hozen systemd[1]: Reloaded The Apache HTTP Server.
Jul 21 03:19:02 hozen systemd[1]: Reloading The Apache HTTP Server.
Jul 21 03:19:02 hozen httpd[21400]: AH02559: The SSLCertificateCh...d
Jul 21 03:19:02 hozen systemd[1]: Reloaded The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.
20
Michael Hampton