Raspbian 運行數月後出現“分段錯誤”

Raspbian 運行數月後出現“分段錯誤”

我有運行 Raspbian GNU/Linux 8 的 Raspberry Pi 3 (jessie)

Linux version 4.1.18-v7+ (dc4@dc4-XPS13-9333) (gcc version 4.9.3 (crosstool-NG crosstool-ng-1.22.0-88-g8460611) )

Apache、PHP 和 MySQL 正在運作。它從另一個 LAN 設備讀取數據,將其記錄到 MySQL DB 並將其發送到遠端伺服器。 MySQL 表中的行將在寫入後 7 天被刪除,但前提是它們已成功傳送到伺服器。

啟動時,服務會啟動文件loop_send.sh,該文件每 10 秒調用一次 PHP 腳本:

#!/bin/bash
COUNTER=0
WAITTIME=10
while [ $COUNTER -lt 5 ]; do
    /usr/bin/php /var/www/send.php
    sleep $WAITTIME
    #let COUNTER=COUNTER+1
done

send.php 檢查MySQL中是否有新記錄並傳送到遠端伺服器。

有類似的服務,.sh 和 PHP 檔案用於從 LAN 讀取資料並寫入 MySQL 表。

自 2016 年 6 月以來,該功能一直運作良好。

其中/var/log/sendservice.err有數千個:

loop_send.sh: line 9:  3702 Segmentation fault      /usr/bin/php /var/www/send.php
loop_send.sh: line 9:  3708 Segmentation fault      /usr/bin/php /var/www/send.php
loop_send.sh: line 9:  3711 Segmentation fault      /usr/bin/php /var/www/send.php
loop_send.sh: line 9:  3716 Segmentation fault      /usr/bin/php /var/www/send.php
loop_send.sh: line 9:  3722 Segmentation fault      /usr/bin/php /var/www/send.php
loop_send.sh: line 9:  3725 Segmentation fault      /usr/bin/php /var/www/send.php
loop_send.sh: line 9:  3728 Segmentation fault      /usr/bin/php /var/www/send.php
loop_send.sh: line 9:  3735 Segmentation fault      /usr/bin/php /var/www/send.php

隨之而來的是很多:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20131226/curl.so' - /usr/lib/php5/20131226/curl.so: symbol steerr, version GLIBC_2.4 not defined in file libc.so.6 with link time reference in Unknown on line 0
PHP Fatal error:  Call to undefined function curl_init() in /var/www/communication.php on line 71

進而:

PHP Warning:  PHP Startup: curl: Unable to initialize module
Module compiled with build ID=aPI2013q226,NTS
PHP    compiled with build ID=API20131226,NTS
These options need to match
 in Unknown on line 0
PHP Fatal error:  Call to undefined function curl_init() in /var/www/communication.php on line 71

進而:

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20131226/curl.so' - /usr/lib/php5/20131226/curl.so: symbol steerr, version GLIBC_2.4 not defined in file libc.so.6 with link time reference in Unknown on line 0
PHP Fatal error:  Call to undefined function curl_init() in /var/www/communication.php on line 71
    invalid subsection length 4194340, max allowed 36

該日誌檔案有 45MB,其中每一則訊息在下一則訊息之前都會重複很多次。

我猜“分段錯誤”是其他一切的原因,但我找不到原因。在此之前,Pi 上沒有監視器和輸入設備。

答案1

從輸出中可以清楚看出,載入到記憶體中的資料與實際資料不匹配應該不再使用您的媒體。例如:

ID=aPI2013q226,NTS

這顯示了多個單位錯誤。您發布的其他日誌條目也表示正在載入的程式也同樣損壞。

檢查您的 SD 卡或其他媒體是否有故障。

相關內容