私はこれについて多くの質問を見ましたが、私のものは少し異なっているようです。
ここに私が受け取るものがあります:
/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
何も起こりません。シェルがハングします。
何が問題でしょうか?
編集: Ubuntu Server 14.04
私はこのメッセージをたくさん見ました。すべてのケースで、「致命的->フォークに失敗しました。」つまり、apt cronジョブを実行するための十分なメモリが残っていませんでした。このcronジョブの空きメモリを増やします。
私の状況では、提案された修正は機能しませんでした。それでも、毎日のcronジョブからエラーメッセージ_DB Update failed, database locked
_が毎日表示されます。しかしapt-xapian-indexパッケージをアンインストールすると、問題がようやく解決しました。このエラーメッセージのソースは、_/etc/cron.daily/apt
_スクリプトがapt-xapian-indexパッケージによって提供される_update-apt-xapian-index
_を実行しようとします。
私の観点から、「DBの更新に失敗しました」の問題について 小さなブログ投稿 を書きました。
あるUbuntu 14.04 VPSでまったく同じ問題が発生しましたが、別のUbuntuでは発生しなかったため、失敗しているVPSには有効なスワップがないことに気付きました。
すべてが正しく設定されていることがわかりましたが、私がしなければならなかったのはapt-get install cryptsetup
と再起動だけでした。
私のようなサーバーリソース(512 MB RAM)に制約されている場合は、apt-xapian-index
を維持することをお勧めします。十分に文書化されていませんが、apt-cache search
のようなものはそれなしでは遅く実行されます。
これは少なくとも、fork to forkエラーを修正する可能性があります。DBエラーの場合にapt-xapian-indexを削除する方法がないかどうかは不明です。
Ubuntu 12および14アームの/etc/cron.daily/apt
でも同じ問題が発生しましたが、シェルからのスクリプトの実行は成功しました。 https://serverfault.com/a/191051/243172 のおかげで、次の行を追加して解決しました
ulimit -s unlimited
スクリプトの冒頭。
_Sudo /etc/cron.daily/apt
_を実行したときにシェルがハングしているように見える理由は、random_sleep()
の呼び出しです。コメントアウトすると(私のUbuntu 14.04では425行目でした)、対話的に実行したときにスクリプトが機能することを少なくとも確認できます。