raspberry programar para python linux raspberry-pi autostart

programar en python para raspberry pi



Averiguar qué botas se inician para Raspberry Pi/Linux (2)

me disculpo por la larga pregunta, pero necesito ser lo más específico posible.

Estoy creando un proyecto que me permite controlar la funcionalidad de una cámara con control remoto. Este proyecto se ejecuta desde un programa de Python, y canaliza su salida a otro programa, llamado chdkptp (que es el programa que me permite controlar la cámara). Hace un momento estaba intentando descubrir cómo iniciar este proyecto en el arranque (para poder conectar mi Raspberry Pi y hacer que todo funcione sin necesidad del escritorio). Intenté un par de cosas diferentes (como agregar el comando que quería al archivo rc.local, etc.), pero terminé agregando un autoarranque a

~/.config/autostart

y esto es lo que hay dentro del archivo que hice:

[Desktop Entry] Encoding=UTF-8 Name=Terminal autostart Comment=Start a terminal and boot remote_function.py piped into chdkptp.sh Exec=/usr/bin/lxterm -e ''cd chdkptp-r735 && ./remote_function.py|./chdkptp.sh''

Básicamente, esto abre lxterm y ejecuta el comando que necesito para iniciar mi programa python que canaliza su salida a chdkptp, y esto funciona.

Pero mi pregunta es la siguiente: creo que puedo haber iniciado accidentalmente mi programa de Python en una ubicación diferente mientras trataba de descubrir lo que tenía que hacer porque mi programa de python arranca dos veces . Lo sé porque tengo un flash LED una vez cuando el programa está en funcionamiento, pero parpadea dos veces y no puedo averiguar en qué otro lugar arranqué mi programa. ¿Cómo hago para descubrir esto?

Es posible que ya tenga una respuesta, pero no sé lo que significa ... Escribí este comando sugerido por alguien:

ps -ax | grep ''remote_function.py''

y obtuve esta respuesta:

875 ? S 0:00 xterm -class UXTerm -title uxterm -u8 -e cd chdkptp-r735 && ./remote_function.py|./chdkptp.sh 1026 pts/0 Ss+ 0:00 bash -c cd chdkptp-r735 && ./remote_function.py|./chdkptp.sh 1028 pts/0 S+ 0:00 python ./remote_function.py 2169 pts/1 S+ 0:00 grep --color=auto remote_function.py

¿Es esta la respuesta? Si es así, ¿qué significa exactamente esto? ¿Tiene algo que ver con el shebang al comienzo de mi programa Python? Soy un novato cuando se trata de eso. Si esa no es la respuesta, ¿cómo voy a buscar dónde más mi programa se inicia en el arranque?

El shebang es esto, para referencia:

#!/usr/bin/env python


De hecho, tiene dos procesos que ejecutan su secuencia de comandos python.

Averiguar qué comenzó en el segundo puede no ser muy divertido, pero como puedes ver que el segundo se inició con python ./remote_function.py entonces tienes dos pistas:

En primer lugar, para que ^ funcione, debería estar en la misma carpeta que remote_function.py . ¿Quizás recuerdas haber jugado con algo que comenzó por sí mismo de esa manera?

En segundo lugar, es posible que pueda encontrar la ubicación del archivo que contiene ese ^ a través de sudo grep ''python ./remote_function.py'' ~ - pero como lo llama con ./ - debería ser bastante obvio (a menos que tenga copias) de ese archivo disperso, que puede ser el caso.


[SOLUCIONADO]

Me lo imaginé.

https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=59285

Me he estado conectando a mi Raspberry Pi con VNC, y tuve un comando de inicio automático junto con mi arranque automático de remote_python para iniciar el servidor de VNC, así pude acceder a mi pi sin necesidad de un monitor. Resulta que hay algún tipo de error con el servidor VNC que inicia las cosas dos veces. Por supuesto. Estoy usando un servidor x11 VNC y ahora las cosas solo se inician una vez :)