Pracuję nad zadaniem CRON, które wywołuje skrypt PHP, który wykonuje wiele operacji bazy danych z pętlami.Ogólny błąd "Zabił" w skrypcie PHP
Wykonuje prawidłowo kiedy ograniczyć zestaw danych, ale gdy uruchamiam go przed pełnym zestawem danych, błędy skryptowe się za pomocą wiadomości:
Killed
set_time_limit jest (0) i memory_limit jest (- 1)
Oto odcinek kod gdzie konsekwentnie pieczątki:
echo "I'm in _getMemberDemographicAttrs\n";
if (! empty ($member_id)) {
$query .= ' AND member_id = ' . $member_id;
}
$result = mysql_query ($query, $this->_db);
if ($result) {
while ($rule = mysql_fetch_assoc ($result)) {
$rules [] = $rule;
}
if (! empty ($rules)) {
mysql_free_result ($result);
echo "I'm leaving _getMemberDemographicAttrs\n";
return $rules;
}
}
Sygnał wyjściowy wygląda następująco:
I'm in _getMemberDemographicAttrs<br/>
I'm leaving _getMemberDemographicAttrs<br/>
I'm in _getMemberDemographicAttrs<br/>
I'm leaving _getMemberDemographicAttrs<br/>
I'm in _getMemberDemographicAttrs<br/>
Killed
Nigdy nie widziałem tego generycznego komunikatu o błędzie Killed
i zastanawiam się, co powoduje jego zabicie?
Dzięki za to.Odkryłem, że Linux zabija ten proces. Rozwiązałem go, redukując limit pamięci dla PHP w skrypcie, co pozwoliło PHP inaczej zarządzać pamięcią i uniknąć awarii. – Fuser97381
Dzięki. Dokładnie to, czego potrzebowałem. – marlar
Dla mnie problem został rozwiązany poprzez uaktualnienie z PHP 5.6 do PHP 7. Oczywiście zależy to od wielu czynników, ale PHP 7 działa wydajniej, więc warto to sprawdzić. –