Just use the language you are the most comfortable with. This kind of application is not CPU-/memory-bound.
You were mentioning Python. It is interpreted but I really don't see why this would be a problem. Youtube/Tornado/Django/etc. run Python. All the things that you will ever want for your specific purpose are already available as modules (daemonize, http, etc.).
PHP does not seem to be a good fit because of the limit that you mention, but also because you need apache (not completely true, but whatever). Still, it is possible.
Java would also perfectly fit. You can also daemonize your process and use existing libraries.
C/C++ seems a bit to much, but with the available libraries, you should be able to generate some working code very quickly.
As manatwork stressed, bash also just fits...
Well, you guessed it, my point here is that for this kind of application, there is no "best language". There is a family of language which already implement a http_client library of some sort and the others. Your CPU and memory are not limiting. You can just enjoy the language you want. :) But generally speaking, if this is your server, checking your web service is up should be checked internally (cron job, nagios, etc.). From your home you may just want to ping the server to see if the hardware is up and responding.
bashis not enough (curl http://example.com/ | grep -q 'Up' || mail -s 'Warning' <<< 'Site not up') the specification you posted is probably incomplete. – manatwork Feb 5 at 13:32bashjust enough for the task. – manatwork Feb 5 at 13:53