NiftyStudio
Posts: 1
Joined: Thu Feb 08, 2018 12:51 am

Como ejecutar un comando automáticamente

Thu Feb 08, 2018 1:00 am

Hola amigos,

Tengo una Raspberry Pi 3 instalada de manera remota y se conecta a la red mediante Wifi, sin embargo tengo problemas con el modo de ahorro de energía del wifi por lo cual me he visto en la necesidad de tener que ingresar este código cada vez que la enciendo:

Code: Select all

sudo iw dev wlan0 set power_save off
Si no ejecuto este comando, pierdo la conexión de la Pi después de algunos minutos de inactividad y eso es bastante molesto porque no tengo otra manera de recuperar el control, obligándome a tener que reiniciarla de manera forzada (desconectando la energía) lo cual me terminará dañando el equipo a largo plazo.

Me gustaría saber si existe alguna manera de que ese código se ejecute de manera automática cada vez que enciendo la Pi, para ya no tener que estarme preocupando si la enciendo/reinicio.

Muchas gracias

56kbps
Posts: 105
Joined: Wed Apr 13, 2016 6:22 am

Re: Como ejecutar un comando automáticamente

Thu Feb 08, 2018 3:26 pm

Si tus conexiones de red están gestionadas por el archivo "/etc/network/interfaces", puedes crear una entrada para "wlan0" y una de las opciones que aceptará será "wireless-power", con "on" o "off" como posibles valores. Esto es exactamente lo que yo hago en mis Raspbian Lite.

Lamentablemente en la versión de escritorio la gestión de redes se hace de otra forma y esta solución no funcionará. No tengo experiencia con la versión de escritorio así que no puedo orientarte.

Lo ideal sería alguna configuración a nivel de sistema operativo, más que ejecutar un comando. Pero desconozco si existe tal cosa (¿alguna configuración mediante "sysctl" que se pueda establecer en "/etc/sysctl.d"? algun módulo del kernel que se pueda configurar en "/etc/modprobe.d"?... etc). Dicho esto, de toda la vida en los Linux se han puesto comandos en el archivo "/etc/rc.local", el cual se ejecuta al iniciar el sistema. Se considera una solución obsoleta (en favor de cron, systemd... y cosas así) pero todavía funciona.

User avatar
lmarmisa
Posts: 1219
Joined: Thu Feb 14, 2013 2:22 am
Location: Jávea, Spain

Re: Como ejecutar un comando automáticamente

Sat Feb 10, 2018 7:40 pm

Para ejecutar un comando automáticamente en el arranque del sistema puedes incluir tu comando en el fichero /etc/rc.local. Ese fichero se ejecuta con privilegios de root, por lo que no deberás utilizar el modificador sudo.

Te indico el procedimiento a seguir. Es muy sencillo.

Debes editar en modo sudo el fichero /etc/rc.local:

Code: Select all

sudo nano /etc/rc.local
Y simplemente añades tu comando un poco antes de la última línea que contiene exit 0.

Code: Select all

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

iw dev wlan0 set power_save off

exit 0
Salva los cambios, sal del editor y reinicia el sistema.

Code: Select all

sudo reboot
Espero que te funcione.

Return to “Español”

Who is online

Users browsing this forum: No registered users and 6 guests