@Bergschreck . Quite late reply from me but it might help others in the future.
You can accomplish that with port triggering. As forr the second part, here is a an example of starting a service through crond if its not running:
if [ $(ps ax | grep -v grep | grep "/usr/local/apache2/bin/httpd" | wc -l) -eq 0 ]
echo "httpd Service not running"
The above script checks for a service "httpd" and if its found not to be running then it will start. Please adjust path and binary/service name according to the file system.
Have a great day!
I learn something new from everyone everyday. A hardware and software hacker .
My Routers: Buffalo WHR HP G54, WRT54G-TM, WRT54GL, ASUS RT N16, DLINK DIR600, Linksys E3200, Tplink 1043ND, ASUS RT N13B, Alfa R36