ApacheとのDFOREGROUNDについての混乱


15

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

/ usr / sbin / httpd -DFOREGROUND

Googleは、プロセスがフォアグラウンドで実行され、シェルから切り離されないことを意味しますが、その意味は本当にわかりません-シェルを閉じた場合、Apacheは死にますか?

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


そして、どのようにしてApacheを起動しましたか?
マイケルハンプトン

「service apache start」を実行した場合、またはサーバーが起動してinit.d / httpdスクリプトをロードした場合に発生します。
ココリコ14

どの「init.d / httpd」スクリプトですか?そのようなスクリプトはないはずです。
マイケルハンプトン

Michael:古いサーバーからコピーしました。起動時に起動する別の方法がわからなかったからです。代わりに何をすべきですか?
ココリコ

回答:


20

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

サービスはsystemctl start httpd、実行時にsystemdによって開始されます(または古いスタイルの方法service httpd start)。Apacheが接続されているsystemdであり、systemdはその子の1つとしてプロセスを管理しています。これは、pidファイルをポーリングしたり、他の厄介なハッカーを実行したりすることなく、systemdがApacheがクラッシュしたかどうかを簡単に判断できるようにするためです。これは、クラッシュした場合に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.

2
おかげで、それは非常に理にかなっています。ですから、私が理解していることを確認するために、DFOREGROUNDで実行しても大丈夫です。
ココリコ14

3
はい、大丈夫です。
マイケルハンプトン

1
@MichaelHamptonこれらのプロセスのうち正確に1つが実行されていることを確認する方法はありますか?
カーラ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.