The best way to have something run on boot is use an init script. Assuming you are using Ubuntu, you can use Upstart to write it in a simple declarative format. A quick example might look like:
description "Daemon for flask project"
start on (local-filesystems and net-device-up IFACE=eth0)
stop on runlevel [!12345]
# If the process quits unexpectedly trigger a respawn
respawn
setuid myuser
setgid mygroup
chdir /path/to/dir
exec uwsgi --master \
--processes 4 \
--die-on-term \
--socket /tmp/uwsgi.sock
Save the file to "/etc/init/myservice.conf" It will now launch on boot once the filesystem is mounted and the network is active. You can also manage it like other services, using:
service myservice start
service myservice restart
service myservice stop