Todos hemos tenido una interfaz wifi o de red que no para de fallar,
pero también reconocemos que si usamos openbsd, no estaría mal
que se lanzase "sh /etc/netstart" para reconectarse en caso de caídas.
Eso puede hacerse con ifstated. Ifstated vigila nuestra interfaz de
red, y en caso de fallo de conexión, permite lanzar cualquier
comando.
Por ello, lanzamos como root:
doas rcctl enable ifstated
Editamos /etc/ifstated.conf con este contenido:
net = '( "ping -nq -c 3 -w 1 1.1.1.1 > /dev/null 2>&1" every 30 )'
state auto {
if ! $net {
run "sh /etc/netstart athn0"
}
}
#fin
Ved que en mi caso uso athn0, debes cambiar athn0 por el nombre de
interfaz en el que acabe el fichero /etc/hostname.if, se hace con
ls "/etc/hostname."
Ahí saldrá inequívocamente el nombre del dispositivo de red.
Tras editar el archivo, lanzamos el servicio:
doas rcctl start ifstated
Mirando la configuración de /etc/ifstated.conf, se ve que
lanza el comando ping hacia 1.1.1.1 cada 30 segundos, se puede
cambiar el valor de every a 20 por ejemplo, y en vez de 1.1.1.1,
algo que siempre está para pruebas, como ejemplo.com.
Usando "ejemplo.com" nos detectaría incluso fallos de DNS que
al usar ping a una IP directa no detectaría.