如果它停止響應並且套接字仍在使用中,如何自動重新啟動apache
Apache 伺服器 Debian Linux x64 為 mysite.com 中的站點單聲道應用程序和其他使用虛擬主機的站點提供服務。
有時 apache 會因未知原因停止響應。Apache error_log 包含:
[Sat Jun 20 13:56:31 2015] [error] [client 90.190.33.164] File does not exist: /var/www/apple-touch- icon.png [Sat Jun 20 16:38:04 2015] [error] server reached MaxClients setting, consider raising the MaxClients setting [Sat Jun 20 17:20:11 2015] [notice] caught SIGTERM, shutting down mod-mono-server received a shutdown message [Tue Jun 23 09:20:50 2015] [error] mod_mono: connect error (Interrupted system call). File: /tmp/mod _mono_server_default mod-mono-server received a shutdown message mod-mono-server received a shutdown message mod-mono-server received a shutdown message [Tue Jun 23 09:20:54 2015] [error] Not running mod-mono-server.exe because no MonoApplications, Mono ApplicationsConfigFile or MonoApplicationConfigDir specified. [Tue Jun 23 09:20:54 2015] [notice] Apache/2.2.16 (Debian) mod_mono/2.6.3 configured -- resuming normal operations ..
看起來像
[Sat Jun 20 16:38:04 2015] [error] server reached MaxClients setting, consider raising the MaxClients setting
日誌文件中的消息首先出現。
之後可能 cron 作業會嘗試在下面重新啟動 apache,這會導致 error_log 中出現消息:
[Sat Jun 20 17:20:11 2015] [notice] caught SIGTERM, shutting down mod-mono-server received a shutdown message
此時伺服器已關閉:access_log 未記錄從 6 月 20 日 17:20 開始的任何訪問
伺服器僅在
$$ Tue Jun 23 09:20:50 2015 $$當我手動重新啟動它時。這種情況從上個月開始每月發生幾次。 要解決此問題,請使用以下 crontab 腳本每 10 分鐘執行一次:
wget --timeout=10 --no-verbose --tries=1 -a /var/log/wget.log -O /var/log/wgettulem.html mysite.com || /etc/init.d/apache2 restart
如果 apache 停止響應,此腳本寫入的日誌文件包含
Connection timed out
錯誤資訊。但是apache沒有重新啟動。嘗試使用手動重新啟動它
/etc/init.d/apache2 restart
返回 Sockect 正在使用錯誤。ps aux 顯示 apace 仍在執行。
我通過使用來解決這個問題
ps aux | grpe apache
查找應用程序程序號並使用
kill
殺死這個程序。
如何修復或找到此消息的原因?如何自動化這個過程,以便所有 apache 實例都被殺死,並且 apache 將被這個腳本自動重新啟動。有什麼方法可以讓 apache 保持響應?
Debian 版本是 6.0.4
apache2 -V 返回
Server version: Apache/2.2.16 (Debian) Server built: Feb 5 2012 21:35:42 Server's Module Magic Number: 20051115:24 Server loaded: APR 1.4.2, APR-Util 1.3.9 Compiled using: APR 1.4.2, APR-Util 1.3.9 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) Server compiled with.... -D APACHE_MPM_DIR="server/mpm/prefork" -D APR_HAS_SENDFILE -D APR_HAS_MMAP -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled) -D APR_USE_SYSVSEM_SERIALIZE -D APR_USE_PTHREAD_SERIALIZE -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT -D APR_HAS_OTHER_CHILD -D AP_HAVE_RELIABLE_PIPED_LOGS -D DYNAMIC_MODULE_LIMIT=128 -D HTTPD_ROOT="/etc/apache2" -D SUEXEC_BIN="/usr/lib/apache2/suexec" -D DEFAULT_PIDLOG="/var/run/apache2.pid" -D DEFAULT_SCOREBOARD="logs/apache_runtime_status" -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock" -D DEFAULT_ERRORLOG="logs/error_log" -D AP_TYPES_CONFIG_FILE="mime.types" -D SERVER_CONFIG_FILE="apache2.conf"
apache2.conf 包含
<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule>
如果您只想在 Apache 掛起(出於任何原因)時強制重新啟動它,那麼您應該安裝 R-fx Networks 的 System Integrity Monitor。
在眾多功能中,它可以配置為監控您的 Web 服務、自動發出重啟命令和發送通知。
快速安裝說明:
cd /usr/local/src wget http://www.rfxn.com/downloads/sim-current.tar.gz tar -xvf sim-current.tar.gz cd sim* ./setup -i
繼續互動式安裝,為您的 Web 服務執行檔定義適當的文件路徑。最後一步,啟用 cronjob:
/usr/local/sbin/sim -j