APT FATAL -> 分叉失败

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 MB 的可用 RAM。如果我尝试手动运行,sudo /etc/cron.daily/apt则不会发生任何事情……shell 会挂起。

可能是什么问题呢?

编辑:Ubuntu 服务器 14.04

答案1

我经常看到此消息。在所有情况下,“FATAL -> Failed to fork。”意味着没有足够的内存供 apt cron 作业运行。增加此 cron 作业的可用内存。

答案2

在我的情况下,所有建议的修复方法都不起作用。我仍然DB Update failed, database locked每天都收到来自每日 cron 作业的错误消息。但卸载apt-xapian-index包最终解决了这个问题。该错误消息的来源是/etc/cron.daily/apt试图运行的脚本update-apt-xapian-index,该脚本由apt-xapian-index包裹。

我写了一个小博客文章关于“数据库更新失败”问题,从我的角度来看。

答案3

我在一个 Ubuntu 14.04 VPS 上遇到了完全相同的问题,而在另外一个上没有,所以我意识到在出现故障的那个 VPS 上没有可以正常工作的交换器。

事实证明一切配置都正确,但我所要做的就是apt-get install cryptsetup重新启动。

如果您像我一样受到服务器资源的限制(512 MB RAM),我觉得保留是个好主意apt-xapian-index,虽然没有很好的记录,但我想apt-cache search如果没有它,类似的程序运行起来会更慢。

这至少可以修复分叉失败的错误,不确定在出现 DB 错误的情况下是否有其他方法可以删除 apt-xapian-index。

答案4

运行时 shell 似乎挂起的原因 sudo /etc/cron.daily/apt是调用了random_sleep()。如果你将其注释掉(在我的 Ubuntu 14.04 上,它是第 425 行),你至少可以确认脚本在以交互方式运行时有效。

相关内容