การเริ่มต้น 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ทำอันตรายถึงชีวิต? การกระทำเริ่มต้นคือการทิ้งสัญญาณ
thrig

คำตอบ:


2

systemdมีการสอน Apache หยุดด้วยgraceful-stopซึ่งสร้างสัญญาณและด้วยเหตุนี้การเข้าสู่ระบบSIGWINCH caught SIGWINCH, shutting down gracefully( SIGWINCHสัญญาณคือ (ab) ใช้โดย Apache)

IMO มีความเป็นไปได้ของข้อผิดพลาดอื่นรวมถึงข้อผิดพลาดในการกำหนดค่าทำให้หยุดและคุณกำลังดูอาการที่เกี่ยวข้องซึ่งเป็นพฤติกรรมปกติ

ฉันจะแนะนำ perusing บันทึกข้อผิดพลาดของ Apache โดยมักจะเริ่มต้นใน SLES /var/log/apache2ภายใต้ไดเรกทอรี


1

ผมพบว่าปัญหาที่คล้ายกันรายงานในRedHat ปิดด้วยสถานะ "NOTABUG" ในที่สุดได้รับการยอมรับว่าเป็นค่าที่ไม่ถูกต้อง

img # 1 1


img # 2 2


img # 3 3


UPDATE

ผมพบว่าหนึ่งในปัญหาที่คล้ายกันมากขึ้นรายงานเมื่อวันที่ServerFault และอีกหนึ่งคำตอบในภาพด้านล่าง

img 1/1ป้อนคำอธิบายรูปภาพที่นี่


-DFOREGROUNDไม่ได้ช่วยในกรณีของฉัน อาปาเช่เริ่ม แต่ก็ไม่กลับมาserviceและserviceบ่นด้วยapache2.service start operation timed out. Terminating.
Peter VARGA

คุณอ่านกระทู้ในลิงค์หรือไม่

1
ฉันยอมแพ้. ฉันเข้าใจสถานการณ์ แต่ฉันไม่รู้ว่าจะแก้ไขได้อย่างไร ฉันพบว่าเมื่อฉันลบExecReload=จาก/usr/lib/systemd/system/apache2.serviceนั้นSIGWINCHไม่ได้ส่ง แต่ Apache ไม่เริ่ม - ไม่มีข้อความแสดงข้อผิดพลาดในบันทึกไม่มีอะไร มันจะหยุดทันทีเมื่อเริ่มทำงาน ฉันใช้งานแฮ็คที่ฉันทำงานapachectl -k startเป็น cron เมื่อระบบเริ่มทำงาน apachectl -k restartฉันจะเริ่มต้นใหม่กับอาปาเช่ ฉันจะลองอีกครั้งในภายหลัง อาจเป็นเพราะฉันได้รับแนวคิดใหม่ ๆ
Peter VARGA

ฉันพบอีกหนึ่งความแตกต่าง ดูการอัพเดต

0

จากความคิดเห็นในรายงานข้อผิดพลาด Red Hat ที่เชื่อมโยงจากคำตอบของ Tomasz :

ดูเหมือนว่าคุณจำเป็นต้องเรียกใช้ 00-systemd.conf หากคุณต้องการให้ systemd รับรู้ว่า httpd เริ่มต้นได้สำเร็จ

ฉันวิ่งและใช้งานได้:

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.