2025/04/05(土)Ubuntuをアップグレードしたらmonitが /home 以下だけ読み込めなくなった件
そのような現象が起きたのですが、Web検索しても解決方法が載っていなかったのでこちらに書きます。誰かの助けになれば幸いです。
動作検証
- /home/hoge.txt -> x
- /home/user/hoge.txt -> x
- /hoge.txt -> o
- /usr/hoge.txt -> o
/dir/hoge.txt -> o (dirは自分で適当に作ったディレクトリ)
x:monitのCHECK FILEで読み込めない。確かに存在するのに not found と出る(パーミッションも問題ないのに)
o:monitのCHECK FILEで読み込める
という不具合でした。(CHECK FILEで読み込めないので他の CHECK xx もできない)
monitはroot権限で動いているので、/home 以下を読めるのが想定される動きですが、/home 以下だけなぜか読み込めない現象が生じました。
詳しい原因は不明ですが、monitでrootから別のユーザーになれないみたいなエラーが出たのでそれが何か影響している可能性が高いです。Ubuntuのアップグレード前は正常に読み込めていたので、アップグレードで何かが壊れたとみて間違いなさそうです。
問題解消のための試行錯誤
問題解消のための実験1:/home ディレクトリを作り直す → 一時的に問題解消したがOSを再起動すると再発
/home でなければ読み込めるため、別の /dir を作って、/home 以下のものを全部 /dir にコピーして、 /home を /home_old にリネームして、/dir を /home にリネーム――というのを試してみました。
最初はそれで問題解消したようにみえたのですが、OSを再起動すると同じ /home 以下が読めない問題が再発しました。
問題解消のための実験2:monit をソースからコンパイルしてインストール → 問題解消
少々手間がかかって面倒ですがこちらで問題が解消しました! やり方はWeb検索すると出ると思います。apt remove monit して、元からあったmonitを削除してからインストールしました。
元からあったmonitがUbuntuのアップグレードで正常に動かなくなった原因は依然として謎のままですが…。