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
в начале сценария.