Apache 2.4 ไม่สามารถฆ่าได้และไม่สามารถหยุดบน Windows Server


11

เรามีสองWindows Serverหนึ่งใน2012 R2และอื่น ๆ ใน2008 R2ซึ่งใช้Apache HTTP Server ( httpd) 2.4ในหนังสือมอบฉันทะ / โหมดย้อนกลับพร็อกซี่ (การใช้งานของProxyPass, ProxyPassReverseและโฮสต์เสมือนการตั้งค่า) เซิร์ฟเวอร์ทั้งสองใช้Apache buildแบบไบนารี2.4.27 x64จาก Apache Haus

เรามีสคริปต์สำรองข้อมูลบางตัวที่ทำงานบนเซิร์ฟเวอร์ทั้งสอง พวกเขาหยุดบริการทั้งหมด (รวมถึง Apache) จากนั้นทำการสำรองข้อมูลและเริ่มบริการทั้งหมดอีกครั้ง

สคริปต์เหล่านี้ทำงานได้ดีมาหลายปี (เกือบ 4 ปี) แต่เริ่มจากJuly 12, 2018พฤติกรรมตอนนี้แปลก สคริปต์การสำรองข้อมูลกำลังทำงานหยุดการบริการทั้งหมดทำการสำรองข้อมูล แต่ตอนนี้บริการทั้งหมดจะเริ่มต้นใหม่ยกเว้น Apache

หลังจากตรวจสอบฉันพบว่าบริการ Apache 2.4.27 ไม่สามารถหยุดได้ เมื่อใช้คอนโซลบริการและพยายามหยุดบริการด้วยตนเองคอนโซลจะแสดง "หยุด" และไม่มีอะไรเกิดขึ้น

ดังนั้นฉันจึงตรวจสอบกระบวนการทำงานและเห็นว่าhttpd.exeกระบวนการทำงานอยู่ ฉันพยายามจะฆ่ากระบวนการ แต่ไม่มีโชค

ดังนั้นฉันพยายาม:

taskkill /im "httpd.exe" /f /t

และผลลัพธ์คือ:

ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.

ดังนั้นฉันทดสอบเพื่อฆ่ากระบวนการด้วยpskillจาก Sysinternals:

pskill -t 560

และผลลัพธ์คือ:

Copyright (C) 1999-2016  Mark Russinovich
Sysinternals - www.sysinternals.com

Process 5956 killed.

แต่นี่เป็นเท็จเนื่องจากhttpdกระบวนการทำงานอยู่เสมอ!

ดังนั้นฉันจึงอัปเดต Apache จาก 2.4.27 เป็น 2.4.34 แต่ปัญหายังคงอยู่ สิ่งเดียวที่ต้องทำเพื่อปลดบล็อกสถานการณ์คือการรีบูตเซิร์ฟเวอร์ทั้งหมด

ฉันตรวจสอบการอัปเดตที่ติดตั้งและบางส่วนถูกติดตั้งไว้July 11, 2018ก่อนหน้าหนึ่งวัน:

  • KB4338420
  • KB4338818
  • KB4339093
  • KB4338423

ดังนั้นฉันคิดว่าปัญหามาจากหนึ่งในการปรับปรุงเหล่านี้ ดังนั้นก่อนที่จะถอนการติดตั้งทั้งหมดมีคนที่มีปัญหาเช่นเดียวกับฉันฉันหมายความว่าApache 2.4 กลายเป็นไม่สามารถฆ่าได้และไม่สามารถหยุดบน Windows Server ได้หรือไม่?

ปัญหาใหญ่คือถ้าhttpdกระบวนการนั้นไม่สามารถฆ่าได้ Apache จะไม่สามารถเริ่มใหม่ได้เนื่องจากพอร์ต 80 ถูกผูกไว้แล้ว


3
ชื่อทำให้เสียงเหมือนหนังสัตว์ประหลาด ..
Trotski94

เป็นที่ต้องการฮ่าฮ่าฮ่า
SiZiOUS

คำตอบ:


10

ตกลงดังนั้นฉันคิดว่าฉันถูก

หลังจากค้นหาบนเว็บเกี่ยวกับการปรับปรุงที่เพิ่งติดตั้งKB4338818เป็นปัญหาที่ก่อให้เกิดปัญหา

นี้เกิดขึ้นสำหรับโปรแกรมอื่น ๆ เช่น FileZilla เซิร์ฟเวอร์เป็นรายละเอียดที่นี่

ฉันเพิ่งถอนการติดตั้งอัปเดตความปลอดภัยนี้และตอนนี้ Apache สามารถเริ่ม / หยุดได้ตามปกติ!

ดังนั้นฉันหวังว่า Microsoft จะแก้ไขปัญหานี้ในการอัปเดตในภายหลัง!


ฉันเห็นว่าคุณพบคำตอบของคุณแล้ว แต่ฉันสงสัยว่าการรีสตาร์ทเซิร์ฟเวอร์จะแก้ไขปัญหาด้วยหรือไม่ นอกจากนี้หากมีการใช้การอัปเดตในขณะที่ Apache ไม่ทำงานอาจเป็นไปได้ว่าอาจไม่ทำให้เกิดปัญหา
MonkeyZeus

ใช่ตามที่ฉันได้อธิบายไปแล้วในคำถามเดิมทางออกเดียวที่จะยกเลิกการปิดกั้นสถานการณ์คือการรีสตาร์ทเซิร์ฟเวอร์ทั้งหมด ... ซึ่งเป็นการแก้ไขปัญหาที่สกปรก!
SiZiOUS

ขออภัยฉันพลาดรายละเอียดไปนิดหน่อย หลังจากรีบูตกระบวนการยังคงไม่สามารถฆ่าได้หรือไม่ ฉันแค่ถามเพราะฉันใช้ Windows 7 x64 กับ Apache บนเครื่องท้องถิ่นของฉัน แต่ยังไม่ได้รับ KB4338818 เลยฉันอยากรู้ว่าจะคาดหวังอะไร
MonkeyZeus

1
ไม่มีปัญหาคุณไม่จำเป็นต้องแสดงความคิดเห็น :) หลังจากรีบูตถ้าคุณตั้งให้ Apache เริ่มโดยอัตโนมัติมันจะทำงาน แต่เมื่อคุณพยายามที่จะหยุดบริการ (ด้วยตนเองหรือโดยการใช้สคริปต์) httpdกระบวนการจะหยุดและจะไม่สามารถฆ่าได้
SiZiOUS



1

KB4338831 ดูเหมือนว่าจะแก้ไขปัญหาสำหรับ Windows Server 2012 R2

การปรับปรุงที่ไม่ใช่ความปลอดภัยนี้รวมถึงการปรับปรุงและแก้ไขที่เป็นส่วน KB4338815 (เปิดตัววันที่ 10 กรกฎาคม 2018) และยังรวมถึงการปรับปรุงคุณภาพใหม่เหล่านี้เป็นตัวอย่างของการปรับปรุงรายเดือน Rollup ครั้งต่อไป ที่มา: 18 กรกฎาคม 2018 — KB4338831 (ดูตัวอย่างการโรลอัพรายเดือน)

มีให้เป็นอัปเดตที่แนะนำใน Windows Update


0

ฉันคิดว่าคุณกำลังติดตามอย่างถูกต้องแน่นอน ฉันมีปัญหาคล้ายกันกับ Tomcat บน Windows Server ฉันมีเซิร์ฟเวอร์อื่นที่มี Tomcat ที่ไม่พบปัญหา แต่สิ่งที่แตกต่างที่สำคัญอย่างหนึ่งที่ฉันพบคือเซิร์ฟเวอร์ทำงานนั้นก็มี IIS ที่ติดตั้งและทำงานบนพอร์ตอื่น ในฐานะที่เป็นวิธีการแก้ปัญหาฉันพยายามโหลด IIS บนเซิร์ฟเวอร์ปัญหาการตั้งค่าเว็บไซต์เริ่มต้นเพื่อให้มันใช้พอร์ตที่ไม่ได้มาตรฐานและปัญหาดูเหมือนจะหายไปโดยไม่ต้องถอนการติดตั้งการปรับปรุง


1
ตกลง ... ฉันนำมันกลับมา ... เคล็ดลับ IIS ดูเหมือนจะใช้งานได้บางครั้งเท่านั้น ดูเหมือนว่าพอร์ต 80 จะได้รับการแก้ไขด้วยการโหลด IIS แต่ 443 ใช้งานได้บางครั้ง นอกจากนี้สำหรับฉันแล้วดูเหมือนว่าการอัปเดตที่ละเมิดจะเป็น KB4338815 อย่างน้อยสำหรับเซิร์ฟเวอร์ที่ใช้งานของฉันนี่เป็นสิ่งเดียวที่ทำงานอยู่บนนั้นดังนั้นฉันสามารถรีบูตได้อย่างง่ายดายเช่นเดียวกับการรีสตาร์ท Tomcat
Don Prezioso
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.