Personally I would get a $5 droplet from Digital Ocean and choose CentOS for an OS because it has the longest support cycle of any distro. Python is probably pre-installed. If it isn't it you should read this page:
https://danieleriksson.net/2017/02/08/how-to-install-latest-python-on-centos/
Then you need to verify if it your script is running periodically. Any script can exit for a number of reasons. If you need to be sure it will always be running you create a cron job that checks on it.
The cron tab is one line in the file /var/spool/cron/root and looks like this:
* * * * * cd /path/to/your/monitor/script; ./your.monitor.script.pl > /dev/null 2>&1
To edit this file:
# sudo vim /var/spool/cron/root
If vim is not installed you can try nano instead of vim. Or install vim:
# sudo yum install vim
The .pl extension in your.monitor.script.pl is because I would write it in perl, my preferred choice for an application like this.
The perl script looks like this:
#!/usr/bin/perl
# this script is called once per minute by a cron tab to ensure that the python script is running
my $response = readpipe( 'ps awx |grep \.py$' ); # this will list all the python processes into a variable called $response
exit if $response =~ /your.python.script.py/; # this will scan $response for the name of the script and exit if the script is running, preventing the next line from executing
readpipe("/path/to/python/script.py > /dev/null 2>&1 &"); # this will start the python script, disconnect if from this process and direct the output to a black hole (/dev/null) before exiting
Than's how I would do it, but it may not be the ideal solution for everyone. Running a 24x7 script from a laptop is not practical. You are going to need your laptop for some purpose at some point and have to stop the script.
Also once you have your own server you will get all kinds of nifty ideas and be able to implement them.
My two cent's worth