NetworkManager を使用していると sshd が再起動されない問題

  • ネットワークが立ち上がる際に、/etc/network/if-up.d/ 以下のスクリプトが呼ばれるが、
  • NetworkManager を使用していると、このスクリプトは、/etc/NetworkManager/dispatcher.d/01ifupdown から呼ばれることになる
  • この 01ifupdown で
export ADDRFAM="NetworkManager"

環境変数が初期化されているが、このせいで /etc/network/if-up.d/openssh-server は

# OpenSSH only cares about inet and inet6. Get ye gone, strange people            
# still using ipx.                                                                
if [ "$ADDRFAM" != inet ] && [ "$ADDRFAM" != inet6 ]; then
        exit 0
fi

の箇所で終了してしまう。

  • 再起動させるためには、
# OpenSSH only cares about inet and inet6. Get ye gone, strange people            
# still using ipx.                                                                
if [ "$ADDRFAM" != inet ] && [ "$ADDRFAM" != inet6 ] && [ "$ADDRFAM" != "NetworkManager" ]; then
        exit 0
fi

のように修正するとよい。