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 月以来,该功能一直运行良好。8 月 31 日,它停止向远程服务器报告,但直到现在仍保持开机状态并连接到网络。

其中/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 卡或其他介质是否出现故障。

相关内容