The first thing you are doing wrong is not posting the code (ie the manager, or at least the part that is running the updater) that is not working :). Without seeing what you are doing in the code that is not working, it is very hard to diagnose. I can't tell what you are actually calling in the backticks or system(), whether it is hanging where you think it is hanging, etc.