SYSTEM ADVISOR REPORT

sudo needrestart

Linux Mint / Docker / JupyterLab — サービス再起動管理
トリガー
apt upgrade
Vivaldiブラウザ更新
真の原因パッケージ
bind9-host
libdns 連鎖更新
解決コマンド
systemctl
restart docker
ライブラリ再ロード
事象の経緯
TRIGGER
Vivaldi ブラウザのアップデート実行(apt upgrade)
FAILURE
Vivaldi 再起動後、Docker / JupyterLab に接続不能
RESOLVE
sudo systemctl restart docker → docker restart jupyter-lab → 接続復活
根本原因 — bind9-host 更新による共有ライブラリ不整合

Vivaldi 自体はネットワークスタックを変更しない。同時に走った apt upgradebind9-host が更新されたことが真因。

1
bind9-host 更新 libdns / libisc 等の BIND ライブラリが連鎖更新される
2
旧ライブラリがメモリ上に残存 Docker デーモンは起動中のため古い .so ファイルを掴んだまま
3
DNS 処理・ネットワーク処理が不整合 Docker 内部 DNS (127.0.0.11) / docker0 ブリッジ経由の通信が詰まる
JupyterLab 接続不能 コンテナ ↔ ホスト間のパケットが通らない
systemctl restart docker で新 .so を再ロード → 解決 iptables DOCKER チェーン再構築 + コンテナ veth ペア再接続も同時に完了
恒久対策 — needrestart

needrestartapt upgrade 後に「再起動が必要なサービス」を自動検出・表示するツール。 Linux Mint ではデフォルト未導入。

INSTALL
sudo apt install needrestart
USAGE
sudo needrestart

# 出力例
Service restarts being deferred:
  * systemctl restart docker.service
  * systemctl restart containerd.service

表示されたサービスを手動で systemctl restart するかどうか判断する。

CONFIG — /etc/needrestart/needrestart.conf
設定値 モード 挙動 推奨度
'i' interactive 確認しながら再起動(デフォルト) 推奨
'l' list only 表示のみ・何もしない 安全
'a' automatic 自動で再起動 要注意

※ Docker コンテナが稼働中の環境では 'a'(自動)は危険。作業中の JupyterLab が無警告で落ちるため、'i' または 'l' で手動判断を推奨。

事後確認コマンド(次回のために)
# apt で何が更新されたか確認
grep " install\| upgrade" /var/log/dpkg.log | tail -30

# Docker の iptables ルールが存在するか確認
sudo iptables -t nat -L DOCKER --line-numbers
sudo iptables -L DOCKER --line-numbers

# Docker のログ確認
sudo journalctl -u docker --since "1 hour ago"