I'd say it is best to silently check for updates ... then if there are updates
available, take action based on user preferences. That way, they are not
bothered if there are no updates. Of course they could set preferences
for no update checking if they are checking manually.
Also the frequency, once per day, once per boot, once per week ... should
also be based on user preferences.
I think a lack of connection is worth special consideration, so if user
preference is to NOT check updates if there is no internet connection then
an occasional prompt/message should be acceptable if updates could not be
checked in a "while". So, if daily update checking is configured, and it
happens that the update check was not successful because the internet
connection is not available, after a week/month of this a message could be
displayed informing the user that update checking needs to be done.
Also, some programs I use check for updates by themself (rather than using
a stand-alone updater). If an update is required, it shows a yes/no prompt.
If I say no, it forgets about it until the next update (could be months). If I
say yes, it does the update and forces a reboot which is rarely at a good
time. So, I am not happy with either choice. I would prefer it also offer
"Remind me later", and "Update at next re-boot".