APT FATAL -> Не удалось раскошелиться

Я видел много вопросов по этому поводу, но мой кажется немного другим.

Вот что я получаю:

/etc/cron.weekly/apt-xapian-index:
FATAL -> Failed to fork.
run-parts: /etc/cron.weekly/apt-xapian-index exited with return code 100

а также

/etc/cron.daily/apt:
FATAL -> Failed to fork.

а также

/etc/cron.daily/apt:
DB Update failed, database locked

У меня всегда есть как минимум 600 МБ свободной оперативной памяти. Если я попытаюсь запустить вручную sudo /etc/cron.daily/apt ничего не происходит.. оболочка висит.

В чем может быть проблема?

РЕДАКТИРОВАТЬ: Ubuntu Server 14.04

5 ответов

Я видел это сообщение много. Во всех случаях "FATAL -> Failed to fork". означало, что для выполнения задания apt cron недостаточно памяти. Увеличьте свободную память для этой работы cron.

Ни одно из предложенных исправлений не сработало в моей ситуации. Я все еще получил сообщение об ошибке DB Update failed, database locked каждый день от ежедневной работы cron. Но удаление пакета apt-xapian-index окончательно решило проблему. Источник этого сообщения об ошибке находится в /etc/cron.daily/apt скрипт, который пытается запустить update-apt-xapian-index который предоставляется пакетом apt-xapian-index.

Я написал небольшое сообщение в блоге о проблеме "Ошибка обновления БД" с моей точки зрения.

У меня была точно такая же проблема на одном Ubuntu 14.04 VPS, а не на другом, поэтому я понял, что у меня не было рабочего свопа на тот, который не удался.

Оказывается, все было настроено правильно, но все, что мне нужно было сделать, это apt-get install cryptsetup и перезагрузите компьютер.

Если вы ограничены такими серверными ресурсами, как я (512 МБ ОЗУ), я думаю, что было бы неплохо сохранить apt-xapian-indexэто не очень хорошо документировано, но я думаю, что такие вещи, как apt-cache search будет работать медленнее без него.

Это может, по крайней мере, исправить ошибку неуспешного разветвления, не будучи уверенным, есть ли альтернатива удалению apt-xapian-index в случае ошибки БД.

Причина, по которой ваша оболочка зависает при запуске sudo /etc/cron.daily/apt это призыв к random_sleep(), Если вы закомментируете это (в моей Ubuntu 14.04 это была строка 425), вы можете хотя бы подтвердить, что скрипт работает, когда вы запускаете его в интерактивном режиме.

У меня была такая же проблема с /etc/cron.daily/apt в Ubuntu 12 и 14 arm, но запуск скрипта из оболочки завершился успешно. Я решил это благодаря /questions/594090/bash-skript-vozvraschaet-nehvatku-pamyati-v-cron-no-ne-v-obolochke/594097#594097 добавив строку

ulimit -s unlimited

в начале сценария.

Другие вопросы по тегам