Bingung tentang DFOREGROUND dengan Apache

16

Jadi saya baru saja menginstal Apache pada server CentOS 7 baru, menggunakan Yum. Saya telah menginstal Apache berkali-kali sebelumnya, tetapi saya belum pernah melihat ini: Ketika saya menjalankan ps aux sekarang, selalu muncul

/ usr / sbin / httpd -DAYEGROUND

Google memberi tahu saya bahwa itu berarti proses akan berjalan di latar depan dan tidak terlepas dari shell, tapi saya tidak benar-benar mengerti apa artinya - jika saya menutup shell, apakah Apache akan mati?

Saya hanya ingin mendapatkan perilaku Apache yang normal, dan menjalankan httpd seperti biasanya, dengan latar belakang, apakah saya harus menonaktifkan DFOREGROUND? (Saya tidak tahu bagaimana caranya btw)

Cocorico
sumber
Dan bagaimana Anda memulai Apache?
Michael Hampton
Itu terjadi jika saya melakukan 'service apache start' atau ketika server mulai dan memuat skrip init.d / httpd.
Cocorico
Apa skrip "init.d / httpd"? Anda seharusnya tidak memiliki skrip seperti itu.
Michael Hampton
Michael: Saya menyalin satu dari server lama saya karena saya tidak tahu cara lain untuk memulainya saat startup. Apa yang harus saya lakukan?
Cocorico
systemctl enable httpd. Lihat dokumentasi
Michael Hampton

Jawaban:

20

The -DFOREGROUNDpilihan memang berarti bahwa Apache akan tidak garpu, tapi itu tidak berarti bahwa itu melekat shell Anda!

Layanan dimulai oleh systemd ketika Anda menjalankan systemctl start httpd(atau cara gaya lama, service httpd start). Itu adalah systemd yang dilampirkan Apache, dan systemd mengelola proses sebagai salah satu dari anak-anaknya. Ini dilakukan agar systemd dapat dengan mudah mengetahui apakah Apache mengalami crash, tanpa harus melakukan polling pada file pid atau melakukan peretasan jahat lainnya. Ini juga berarti bahwa systemd mampu me-restart Apache secara otomatis jika crash.

Jalankan systemctl status httpduntuk melihat statusnya. Contohnya terlihat seperti:

# 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.
Michael Hampton
sumber
2
Terima kasih, itu masuk akal. Jadi hanya untuk memastikan saya benar-benar mengerti, tidak apa-apa untuk menjalankan dengan DFOREGROUND dan itu sebenarnya baik, tidak buruk, kan?
Cocorico
3
Ya, tidak apa-apa.
Michael Hampton
1
@MichaelHampton Apakah ada cara untuk melihat apa tepatnya salah satu dari proses ini berjalan?
carla