hibernate — мой скрипт батареи съел всю мою память

Я начинающий разработчик, который только начал программировать около года назад. В настоящее время я использую Linux Mint 18.1, и мне нравится отслеживать статистику моего ноутбука через окно tmux с несколькими открытыми вещами, такими как Htop, Iotop, сенсоры и т. Д.

Недавно я создал скрипт батареи с PHP, который успешно просматривает то, что я хочу, но я столкнулся с ошибкой, которую я не знаю, как бороться. В основном мой скрипт выводит статистику заряда батареи в окне терминала при запуске и обновляется каждую секунду. Моя дилемма в том, что я перевел свой ноутбук в спящий режим, и, проснувшись, получил спам с ошибками нехватки памяти, в то время как мой компьютер боролся с SIGKILL, что, как я полагаю, является моим мошенническим сценарием.

Вот пример длинного списка ошибок, расположенный в /var/log/php7.0-fpm.log

[24-Jan-2017 17:49:41] ВНИМАНИЕ: [pool www] ребенок 3368 вышел по сигналу 9 (SIGKILL) через 0,007716 секунд от начала
[24-Jan-2017 17:49:41] ВНИМАНИЕ: [pool www] ребенок 3370 запущен

Я считаю, что это из-за того, как работает мой цикл. Что было бы лучшим способом выполнить такой цикл?

<?php

$true = 1;

while($true == 1){
EchoStats();
sleep(1);
system('clear');
}

function EchoStats()
{
$stats = GetBatStats();

echo "Battery State: " . $stats[0] . "\n";
echo "Battery Level: " . $stats[1] . "\n";
if($stats[0] == 'discharging'){
echo "Battery Time Left: " . $stats[2] . "\n";
}
if($stats[0] == 'charging'){
echo "Time until fully charged: " . $stats[2] . "\n";
}
}

function GetBatStats()
{
$battPercent = exec("upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep 'percentage'");
$battPercent = IsolateValue($battPercent);

$battState = exec("upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep 'state'");
$battState = IsolateValue($battState);

if($battState == 'discharging'){
$battEstTime = exec("upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep 'time to empty'");
$battEstTime = IsolateValue($battEstTime);
}
if($battState == 'charging'){
$battEstTime = exec("upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep 'time to full'");
$battEstTime = IsolateValue($battEstTime);
}

return array($battState,$battPercent,$battEstTime);

}

function IsolateValue($var)
{
$var = explode(':',$var);
$var = $var[1];
$var = str_replace(' ','',$var);
$var = str_replace('hours',' hours',$var);
$var = str_replace('minutes',' minutes',$var);

return $var;
}

?>

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]