---
# System prepended metadata

title: Reboot automático de Nodo Bitcoin y LND en Ubuntu
tags: [talleres_mln, ubuntu]

---

En esta sección vamos a crear un **shell script** para indicarle al servidor que cada que inice el servidor (es decir si se reinicia, se apaga por algún error y prende automáticamente), inicie primero el nodo de bitcoin, espere unos momentos y después inicie el nodo LND.

Así que vamos a crear un archivo `.sh` en nuestra carpeta `nodes` con el siguiente comando:

```bash
$ nano ~/nodes/start_nodes.sh
```

Y vamos a agregar la siguiente información:

```bash
# create bitcoind alias
bitcoind="$HOME/nodes/bitcoin/bitcoin-25.0/bin/bitcoind"
# inform log your status
echo "starting bitcoin daemon"
# run bitcoin node
$bitcoind -testnet -daemon
# wait 30 seconds
sleep 30
# create lnd alias
lnd="$HOME/nodes/lnd/lnd-linux-amd64-v0.16.4-beta/lnd"
# inform log your status
echo "starting lnd"
# run lnd node
$lnd
```

> ¡ATENCIÓN! Recuerda cambiar la ruta de los binarios en la información anterior por las versiones que estás utilizando o no funcionará.

Ahora vamos a abrir nuestro crontab para actualizar el comando que teníamos para iniciar únicamente el nodo de bitcoin y colocar el script .sh que acabamos de crear.

```bash
$ crontab -e
```

Y cambiamos el comando que habíamos agregado en el paso 3 "Instalación del Nodo Bitcoin" por el siguiente:

```bash
@reboot bash ~/nodes/start_nodes.sh 2> ~/nodes/err.log &
```

Ahora cuando se reinicie por cualquier razón nuestra instancia, el servidor conoce los pasos que debe seguir para dejar corriendo nuestro nodo bitcoin y LND. 

Si por alguna razón  no funciona, podrás revisar lo que sucedió al momento de correr el script en el archivo `nodes/err.log`.

Para probarlo vamos a reiniciar la instancia de AWS entrando a la sección de EC2. 


![Panel de EC2](https://hackmd.io/_uploads/r1Z5ZEN5h.png)
*<sub>Imagen 1</sub>*

Click en **Instancias (en ejecución)** (Imagen 1).

![Instancias](https://hackmd.io/_uploads/B1f9WEN9n.png)
*<sub>Imagen 2</sub>*

Seleccionamos nuestra instancia (Imagen 2), y vamos al menú desplegable **"Estado de la instancia"** y damos click en **"Reiniciar instancia"** (Imagen 3)

![Menú desplegable](https://hackmd.io/_uploads/B1Gqb4E92.png)
*<sub>Imagen 3</sub>*

Ahora debemos esperar unos minutos a que nuestra instancia vuelva a iniciar y realice todo el proceso esperado.

Si intentas conectarte a tu instancia y te manda un error de `timeout` significa que aún no termina de reiniciarse y debes esperar unos minutos más.

Después de unos minutos, nos volvemos a conectar y podemos comprobar que está corriendo el nodo de bitcoin y LND si revisamos sus logs utilizando el comando `tail -f` como en los siguientes ejemplos.

Primero revisa el log de bitcoin y verifica que no marque errores o que se detuvo.
```bash
$ tail -f bitcoind-testnet.log
```

Ahora verifica que LND esté corriendo utilizando su log.
```bash
$ tail -f lnd-testnet.log
```

Si todo se ve en orden podrémos probar utilizar nuestro nodo LND con el comando para mostrar su información

```bash
$ lncli --network=testnet getinfo
```

---

**Tabla de contenido**
- [Creando una instancia Ubunto en AWS EC2](https://hackmd.io/@lalibreriadesatoshi/BkeKG449h)
- [Instalación del Nodo Bitcoin en Ubuntu](https://hackmd.io/@lalibreriadesatoshi/H16U14V53)
- [Instalación del Nodo LND (Lightning Network)](https://hackmd.io/@lalibreriadesatoshi/H1rcgVVq2)
- Reboot automático de Nodo Bitcoin y LND en Ubuntu

## Autor
Twitter para dudas, comentarios y/o sugerencias: [@xwazzo](https://twitter.com/xWazzo)