OK, eu descobri!
Eu descartei o negócio /etc/rc.local e, agora, além do wpa_supplicant.conf, agora tenho o seguinte em meu / etc / network / interfaces.
auto enp0s31f6
iface enp0s31f6 inet dhcp
pre-up wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -Dwired -ienp0s31f6 &
pre-up sleep 4
post-down pkill wpa_supplicant
Isso funciona na reinicialização e também no ifup / ifdown. Yay!
Além disso, se alguém deseja ser mais seguro, você pode fazer o seguinte para gerar um NTPasswordHash que você pode usar em vez de uma senha de texto sem formatação.
echo -n your_password | iconv -t utf16le | openssl md4
Você então colocará isso no campo de senha da sua rede em wpa_supplicant.conf da seguinte forma:
password=hash:6602f435f01b9173889a8d3b9bdcfd0b
NOTA: Você deve omitir as aspas ou então ele tentará enviar a string real (com hash :) e falhar.