Kami memiliki dua Windows Server , satu di 2012 R2 dan yang lainnya di 2008 R2 yang menggunakan Apache HTTP Server ( httpd
) 2.4 dalam mode proxy / reverse-proxy (penggunaan ProxyPass
, ProxyPassReverse
dan konfigurasi Host Virtual). Kedua server menggunakan Apache 2.4.27 x64 binary build dari Apache Haus.
Kami memiliki beberapa skrip cadangan yang berjalan di kedua server. Mereka menghentikan semua layanan (termasuk Apache) kemudian melakukan pencadangan dan memulai kembali semua layanan lagi.
Skrip ini berfungsi dengan baik sejak beberapa tahun (hampir 4 tahun). Tetapi mulai dari July 12, 2018
, perilakunya sekarang aneh. Skrip cadangan melakukan tugasnya, menghentikan semua layanan, membuat cadangan tetapi sekarang, semua layanan dihidupkan ulang kecuali Apache.
Setelah menyelidiki, saya menemukan bahwa layanan Apache 2.4.27 tidak dapat dihentikan. Saat menggunakan konsol Layanan dan mencoba menghentikan layanan secara manual, konsol menampilkan "Berhenti" dan tidak ada yang terjadi.
Jadi saya memeriksa proses yang berjalan dan melihat bahwa suatu httpd.exe
proses sedang berjalan. Saya mencoba untuk membunuh proses itu tetapi tidak berhasil.
Jadi, saya mencoba:
taskkill /im "httpd.exe" /f /t
Dan hasilnya adalah:
ERROR: The process with PID 560 (child process of PID 480) could not be terminated.
Reason: There is no running instance of the task.
Jadi saya diuji untuk mematikan proses dengan pskill
dari Sysinternals:
pskill -t 560
Dan hasilnya adalah:
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
Process 5956 killed.
Tapi ini salah, karena httpd
prosesnya selalu berjalan!
Jadi saya telah memperbarui Apache dari 2.4.27 ke 2.4.34, tetapi masalahnya tetap ada. Satu-satunya hal yang harus dilakukan untuk membuka blokir situasi adalah me-reboot seluruh server.
Saya memeriksa pembaruan yang diinstal, dan beberapa di antaranya diinstal July 11, 2018
satu hari sebelumnya:
- KB4338420
- KB4338818
- KB4339093
- KB4338423
Jadi saya kira masalahnya adalah dari salah satu pembaruan ini. Jadi sebelum menghapus semua dari mereka, apakah ada seseorang yang memiliki masalah yang sama seperti saya, maksud saya Apache 2.4 menjadi tidak dapat diraih dan tidak dapat dihentikan pada Windows Server?
Masalah besarnya adalah, jika httpd
proses itu tidak dapat dimatikan, Apache tidak dapat dimulai kembali karena port 80 sudah terikat.