Estoy tratando de ejecutar un script cuando mi Raspberry Pi se inicia. Me gustaría que el navegador web se abra automáticamente.
He tratado de encontrar una solución simple (como colocar mi script en un directorio de "inicio" o algo similar) pero no veo nada de eso.
He investigado Upstart , pero estoy luchando por comprender cómo funciona. Las secuencias de comandos que he probado no han funcionado cuando las pruebo.
.xinitrc
o.xsession
archivo.Respuestas:
Para ejecutar Midori en el inicio, eche un vistazo a este tutorial . Para soluciones de bricolaje, sigue leyendo.
Puede agregar su comando ejecutable de secuencia de comandos en la parte inferior
.bashrc
que ejecutará su secuencia de comandos cada vez que abra un terminal (o ejecute una nueva instancia debash
) .Asegúrate de estar en la
pi
carpeta:Cree un archivo y escriba una secuencia de comandos para ejecutar en el archivo:
Guardar y salir: Ctrl+ X, Y,Enter
Abrir
.bashrc
para la configuración:Desplácese hacia abajo y agregue la línea:
./superscript
Guardar y salir: Ctrl+ X, Y,Enter
Si está buscando una solución que funcione en el arranque de la consola , eche un vistazo a este enlace . Resumen básico:
Cree un archivo para su script de inicio y escriba su script en el archivo:
Guardar y salir: Ctrl+ X, Y,Enter
Haga que el script sea ejecutable:
Registrar el script que se ejecutará al inicio:
Si desea que se ejecute un script al iniciar en el entorno LXDE , puede echar un vistazo a esta publicación del foro de Raspberry Pi :
Navegar a
~/.config/lxsession/LXDE-pi
Abra el
autostart
archivo en esa carpeta:Agregar
@midori
en una nueva línea. Si desea ejecutar algo como un script de Python, coloque algo como@python mypython.py
en una nueva línea. Ejecutar un archivo de script sería@./superscript
, pero por alguna razón el script se ejecuta en un bucle infinito (quizás esto lo detendrá).Guardar y salir: Ctrl+ X, Y,Enter
Reinicie su Raspberry Pi en el entorno LXDE.
fuente
$ sudo startx
?.bashrc
no se lee cuando el sistema arranca o cuando un usuario inicia sesión , solo cuando abre un nuevo terminal (y se lee cada vez que el usuario abre un nuevo terminal). Estoy desconcertado de que esta respuesta haya recibido tantos votos positivos: la primera parte es simplemente errónea . La tercera parte es correcta para ejecutar un programa GUI.La forma en que he visto a la mayoría de las personas hacerlo (eche un vistazo a los foros de Raspberry Pi), y lo he hecho con éxito es usar
/etc/rc.local
.Todo lo que necesita hacer aquí es ponerlo
./myscript
en el archivo de texto rc.local. Si está en python, ponpython myscript.py
.Esto literalmente es "una solución simple, (como colocar mi script en un directorio" de inicio "o algo similar)" tal vez busque en los foros cuando tenga preguntas también, esta solución apareció en los primeros 4 resultados de un ¡búsqueda de Google!
fuente
python myscript.py
. Si desea chmod + x y agregar#! /bin/python
, puede ejecutar el script haciendo$pathtofile/myscript.py
donde$pathtofile
está.
si está en el mismo directorio o en la ruta absoluta o relativa al archivo./etc/rc.local
es solo para iniciar los servicios del sistema (programas que no tienen una interfaz de usuario).Agréguelo al crontab
El crontab ejecuta comandos en momentos definidos.
Edite el archivo:
Agregue una línea al archivo (aquí un script de Python):
fuente
python3
), vea aquí/etc/rc.local
es solo para iniciar programas que no tienen una interfaz de usuario.Inicio automático de aplicaciones xorg
Si la secuencia de comandos que desea iniciar requiere una sesión xorg, entonces puede intentar seguir la especificación de inicio automático de freedesktop que podría o no funcionar según el entorno de escritorio que esté utilizando.
Alternativamente, puede orientar su entorno de escritorio específico como se describe en https://wiki.archlinux.org/index.php/autostarting .
Ejecutar un script como un servicio systemd
Si su script se ajusta a la descripción de un demonio o un 'servicio', y su sistema está ejecutando systemd, como es el caso de las linces raspbian y más modernas, entonces puede configurar su script para que se ejecute como un servicio systemd: esto proporciona un control granular sobre el ciclo de vida y el entorno de ejecución, así como las condiciones previas para (re) iniciar el script, como la red en funcionamiento. También es posible configurar el reinicio del servicio en caso de falla (
Restart=always
y retraso entre reiniciar, por ejemploRestartSec=10
).Para uso en todo el sistema, cree su archivo de unidad systemd en
/etc/systemd/system
, por ejemplo, convim /etc/systemd/system/autossh.service
:Ver también:
[
unit
] configuración[
service
] configuraciónAhora estamos listos para probar el servicio:
Comprobación del estado del servicio:
Detener el servicio:
Una vez que haya verificado que el servicio funciona como se esperaba, habilítelo con:
fuente
Quiero agregar mis dos centavos, a pesar de que esta es una pregunta antigua, pero comúnmente se me pide que haga algo simple: el inicio automático. Intenté todas las soluciones sugeridas en todas las respuestas a esta pregunta. Ninguno de ellos trabajó para mí. Estoy usando Raspberry PI Model 2 con Raspbian.
La única forma en que podría hacer que mi aplicación se inicie automáticamente con éxito es a través de un script de la siguiente manera. Digo con éxito porque mi aplicación comenzó como se esperaba sin tener ningún problema, como comenzar con una ruta de trabajo incorrecta.
1.Cree un archivo vacío con la extensión .sh y asígnele el nombre que desee.
2. Copie y pegue lo siguiente EXACTAMENTE excepto que cambie "el nombre de su aplicación" por el nombre del script que acaba de crear.
Luego, guarde el archivo de script dentro de la carpeta de su aplicación
Luego, abra la
/home/pi/.config/autostart
carpeta. Puede ser diferente en tu caso. Simplemente abra su carpeta de inicio y habilite ver carpetas ocultas. abierta.config/autostart
. Si no ve la carpeta de inicio automático, cree una carpeta llamada inicio automático dentro de la carpeta .config.dentro de la carpeta de inicio automático, deberá crear un acceso directo a su archivo de script que creó de la siguiente manera. Crea un archivo vacío con extensión
.desktop
.Copiar y pegar el siguiente en el archivo de escritorio vacío, excepto que tendrá que cambiar
Comment
,Name
,Exec
,Path
yIcon
el valor del campo.Guarde y cierre el archivo después de cambiar todos los campos necesarios. Estás listo. Solo pruébalo.
fuente
/usr/local/bin/ApplicationName
...?home
si es un dispositivo separado) no habrá un problema con el archivo de script (o un archivo ejecutable) que no esté disponible cuando el ¡El sistema vuelve a fallar en un único/bin/sh
shell de usuario ! Hoy en día, lasystemd
forma es montar ambos/
y/usr
antes de que se inicie PID 1 ...También tuve problemas con esto. En el Raspberry Pi3 con Raspbian, esto es lo que hice:
fuente
En el Raspberry Pi3 con Raspbian Stretch, esto es lo que hice:
Edite el archivo de inicio automático LXDE-pi
Agregue esto al final de ese archivo
guardar y reiniciar
fuente
Método 1:
Para iniciar un comando automáticamente al iniciar sesión, coloque el comando en un archivo llamado
en el directorio de usuarios (por ejemplo / home / pi)
Por ejemplo, el archivo podría contener
lanzar Chromium en pantalla completa apuntando a www.google.com
Método 2:
Esta solución funciona muy bien. Una vez que se carga el navegador, hay un pequeño cuadrado negro en la parte superior izquierda de la pantalla que parece ser un error general (otros usuarios lo mencionan en los foros), pero de lo contrario, el modo de pantalla completa oculta todo excepto la página del navegador.
Edite el archivo de inicio automático:
Comente todo usando un '#' al comienzo de cada línea y luego agregue las siguientes líneas
Auto ejecutar el navegador
Si es necesario, use la herramienta de configuración para habilitar la ejecución automática de la GUI al encender
Si necesita salir de nuevo al símbolo del sistema CTRL+ ALT+F1
CTRL+ ALT+F2
fuente
Puede colocar su script en la parte inferior del
/etc/profile
archivo.Otras opciones no funcionaron para mí, pero esto quizás sea porque puse mi script en el escritorio.
fuente
cree un archivo .sh con los comandos 'python /path/to/your/script.py' escriba 'sudo nano /etc/rc.local' y escriba la ruta al archivo .sh
antes de
O simplemente podrías escribir
o
si desea que el script se ejecute al inicio
dentro del tipo de archivo
fuente
que funciona. (En cada reinicio, prepare los siguientes envíos automáticamente)
fuente
Esto es lo que generalmente hago.
Edite el archivo:
sudo nano .bashrc
Ve al final del archivo y escribe:
sudo python mycode.py
Si desea que la salida se almacene en un archivo txt, edite el código en el Paso 3 de la siguiente manera:
sudo python mycode.py >> output.py
¡Espero que esto ayude!
fuente