Kill

Ubuntu 伺服器隨機殺死 Apache2 - 我想我知道為什麼

  • August 3, 2016

幾週,甚至幾個月,在 logrotate 之後,我的 Apache2 伺服器突然停止並且無法重新啟動,主要是因為證書上的密碼。但我不想刪除它。

一開始我以為是因為Logrotate。但是後來,我對其進行了更好的監控並進行了一些測試,但這不是原因。

我到處搜尋日誌,直到今天早上,當它再次崩潰時,我發現了這個:

錯誤日誌

[Wed Aug 03 06:34:41.322231 2016] [mpm_prefork:notice] [pid 2726] AH00169: caught SIGTERM, shutting down
[Wed Aug 03 06:34:42.301179 2016] [ssl:info] [pid 18371] AH02200: Loading certificate & private key of SSL-aware server 'aa.bb.cc:443'

系統日誌

Aug  3 06:34:40 myserver php5-common: php5_invoke pdo: already enabled for apache2 SAPI
Aug  3 06:34:40 myserver php5-common: php5_invoke pdo: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-common: php5_invoke opcache: already enabled for apache2 SAPI
Aug  3 06:34:40 myserver php5-common: php5_invoke opcache: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke opcache: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke pdo_pgsql: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke json: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke pdo: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke pgsql: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-cli: php5_invoke readline: already enabled for cli SAPI
Aug  3 06:34:40 myserver php5-readline: php5_invoke readline: already enabled for apache2 SAPI
Aug  3 06:34:40 myserver php5-readline: php5_invoke readline: already enabled for cli SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke opcache: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke pdo_pgsql: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke json: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke pdo: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke pgsql: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: php5_invoke readline: already enabled for apache2 SAPI
Aug  3 06:34:41 myserver libapache2-mod-php5: apache2_invoke php5: already enabled
Aug  3 06:34:42 myserver apache2: No way to ask user for passphrase

替代品.log.1

update-alternatives 2016-08-03 06:34:40: run with --install /usr/bin/php php /usr/bin/php5 50 --slave /usr/share/man/man1/php.1.gz php.1.gz /usr/share/man/man1/php5.1.gz

我想我終於找到了為什麼我的伺服器突然停止工作了。但我不知道update-alternatives是做什麼用的,我從來沒有聽說過,需要關於如何移動的建議,以解決我的問題。它可以是更新 php 或停止該程序在上午 6.34 執行,或完全停止。

任何意見是極大的讚賞!

編輯: 最佳答案(也是唯一一個)標記為已接受,因為我發現我的系統正在安裝更新,其中包括 php.ini 文件。由於證書的原因,這讓系統既有更新版本的 php 又有不當關閉 apache 服務。我想要證書上的密碼,所以禁用更新

dpkg-reconfigure -plow unattended-upgrades

似乎解決了我的問題。但我不能確定.. 必須等待下一個 SIGTERM,如果有的話。

有關man update-alternatives替代系統的描述,請參見

這是在您的系統上執行的命令

update-alternatives –install /usr/bin/php php /usr/bin/php5 50 –slave /usr/share/man/man1/php.1.gz php.1.gz /usr/share/man/man1 /php5.1.gz

我不知道為什麼,但我想知道您是否啟用了自動更新。如果安裝了新的 php,則可能會執行此命令。

如果我是正確的,禁用自動更新應該可以解決您的問題。否則,它可能是一項 cron 工作,但我在我的 Ubuntu 系統上找不到任何看起來可以做到這一點的東西。

引用自:https://serverfault.com/questions/793552