สับสนเกี่ยวกับ DFOREGROUND กับ Apache


16

ดังนั้นฉันเพิ่งติดตั้ง Apache บนเซิร์ฟเวอร์ CentOS 7 ใหม่โดยใช้ Yum ฉันติดตั้ง Apache หลายครั้งก่อนหน้านี้ แต่ฉันไม่เคยเห็นสิ่งนี้มาก่อน: เมื่อฉันรันps auxตอนนี้มันจะแสดงเสมอ

/ usr / sbin / httpd -DFOREGROUND

Google บอกฉันว่าหมายความว่ากระบวนการจะทำงานในเบื้องหน้าและไม่แยกออกจากเปลือก แต่ฉันไม่ได้รับความหมายที่ว่า - ถ้าฉันปิดเปลือกของฉัน Apache จะตายหรือไม่

ฉันต้องการรับพฤติกรรม Apache ปกติและมีการเรียกใช้ httpd เหมือนอย่างที่เคยทำมาในพื้นหลังฉันต้องปิดการใช้งาน DFOREGROUND หรือไม่ (ฉันไม่สามารถหาวิธี btw)


และคุณเริ่มต้น Apache ได้อย่างไร
Michael Hampton

มันเกิดขึ้นถ้าฉันทำ 'service apache start' หรือเมื่อเซิร์ฟเวอร์เริ่มทำงานและโหลดสคริปต์ init.d / httpd
Cocorico

สคริปต์ "init.d / httpd" คืออะไร คุณไม่ควรมีสคริปต์แบบนี้
Michael Hampton

Michael: ฉันคัดลอกมาจากเซิร์ฟเวอร์เก่าของฉันเพราะฉันไม่สามารถหาวิธีอื่นในการเริ่มต้นเมื่อเริ่มต้น ฉันควรทำอะไรแทน
Cocorico

คำตอบ:


20

-DFOREGROUNDตัวเลือกที่ไม่แน่นอนหมายความว่า Apache จะไม่ส้อม แต่นั่นไม่ได้หมายความว่ามันติดอยู่กับเปลือกของคุณ!

บริการเริ่มต้นโดย systemd เมื่อคุณเรียกใช้systemctl start httpd(หรือวิธีแบบเก่าservice httpd start) เป็น systemd ที่ Apache ติดอยู่และ systemd จัดการกระบวนการเป็นหนึ่งในลูก ๆ สิ่งนี้ทำเพื่อให้ systemd สามารถบอกได้อย่างง่ายดายว่า Apache ขัดข้องโดยไม่ต้องสำรวจไฟล์ pid หรือทำแฮกเกอร์ที่น่ารังเกียจอื่น ๆ นอกจากนี้ยังหมายความว่า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 และจริง ๆ แล้วมันดีไม่เลวใช่ไหม
Cocorico

3
ใช่มันไม่เป็นไร
Michael Hampton

1
@MichaelHampton มีวิธีดูว่าหนึ่งในกระบวนการเหล่านี้ทำงานอย่างไร
carla
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.