Maybe stderr is not redirected?
If want to have a program or script running in the background, and continue to run when the shell closes it was started from, use "nohup" ("No Hang Up"). Nohup will redirect its output to a file called "nohup.out". If you don't like that, redirect stdin and stder both to /dev/null (or a file of your choice). Then no file will be created.
bash$ nohup ./yourscript.sh >/dev/null 2>&1 &
Read "info coreutils nohup" or "man nohup" for more info.