En este post te mostraré cómo ejecutar un comando o instrucción (de hecho, se va a ejecutar un script sh que tendrá los comandos que quieras) siempre que la Raspberry Pi se reinicie.
Dicho de otro modo, ejecutar un script siempre que la Raspberry Pi encienda.
Colocar órdenes en un script
Primero debes colocar los comandos que se deben ejecutar en el inicio dentro de un archivo con extensión .sh
. En mi caso quiero limitar el uso de la red pues uso la Pi como un punto de acceso y quedan así:
sudo tc qdisc add dev wlan1 root tbf rate 0.5mbit burst 32kbit latency 400ms
sudo tc qdisc add dev wlan0 root tbf rate 0.5mbit burst 32kbit latency 400ms
Si te fijas, mi script se llama limitar.sh y está dentro de /home/pi/
Dar permiso de ejecución
Esto puede o no puede ser necesario, dependiendo del privilegio que necesites, pero de igual modo lo dejo aquí. Debes dar permisos de ejecución al script con chmod. En mi caso fue con:
sudo chmod +x limitar.sh
Editar crontab
Vamos a usar crontab con una opción especial para ejecutar el script al reiniciar el sistema. En este caso escribe:
sudo crontab -e
Nota: puede que te solicite el editor con el que vas a modificar el archivo, elige el que más te convenga y si no sabes usarlo, busca un tutorial externo.
Ahora al final del archivo añade lo siguiente:
@reboot /home/pi/limitar.sh
En este caso estoy indicando que en el reboot o reinicio (@reboot
), se ejecute el script de /home/pi/limitar.sh
Personalmente mi crontab queda así, pues no tengo otros scripts que ejecutar a otros momentos del día:
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
@reboot /home/pi/limitar.sh
Guarda los cambios del archivo y cierra el editor. Al reiniciar el sistema operativo Linux que contiene la Pi, comprobarás que el script se está ejecutando.