Reputation: 175
I want to run a python script which executes a GUI on startup(as pi boots up). But I don't see any GUI on screen but when I open terminal my program executes automatically and GUI appears. Also, my program requires an internet connection on execution but pi connects to wifi later and my script executes first and ends with not connecting to the internet.
Is there any way my python script executes after pi boots up properly and pi connected with internet
Upvotes: 3
Views: 9800
Reputation: 51837
Two steps on Raspian:
raspi-config
)~/.config/lxsession/LXDE-pi/autostart
and add your python script to the path: e.g. @python /home/pi/your_script.py
It depends on the version of raspian if the path is
~/.config/lxsession/LXDE-pi/autostart
or
~/.config/lxsession/LXDE/autostart
I recommend trying one at a time.
(Older version might use this path /etc/xdg/lxsession/LXDE-pi/autostart
(ref))
This should run the script after the UI initialises but you don't have any guarantee WiFi is connected though. I recommend ammending your python script to check if it's connected first and if not retry after a few seconds until it is, then execute the rest as expected.
Upvotes: 2
Reputation: 78
Without knowing you Pi setup it's a bit difficult. But with the assumption you're running raspbian with its default "desktop" mode:
ssh
ing to it or connecting a monitor/keyboard. sudo nano /etc/inittab
to open the inittab for editing.1:2345:respawn:/sbin/getty 115200 tty1
and change it to #1:2345:respawn:/sbin/getty 115200 tty1
1:2345:respawn:/bin/login -f pi tty1 </dev/tty1 >/dev/tty1 2>&1
. Type Ctrl+O and then Ctrl+X to save and exitsudo nano /etc/rc.local
su -l pi -c startx
(replacing pi
with the username you want to launch as) above the exit 0
line. This will launch X on startup, which allows other applications to use graphical interfaces.python /path/to/mycoolscript.py &
), but still above the exit 0
line.&
included here. This "forks" the process, allowing other commands to run even if your script hasn't exited yet. Ctrl+O and Ctrl+X again to save and exit.Now when you power on your Pi, it'll automatically log in, start X, and then launch the python script you've written!
Also, my program requires an internet connection on execution but pi connects to wifi later and my script executes first and ends with not connecting to the internet.
This should be solved in the script itself. Create a simple while
loop that checks for internet access, waits, and repeats until the wifi connects.
Upvotes: 3