I think that the culprits may be (from signal (7))
SIGTTIN 21,21,26 Stop tty input for background process SIGTTOU 22,22,27 Stop tty output for background process
I do not know if it is possible to override the signal processing for these signals when using ncurses. This does not seem to make much sense: you also do not want to steal input from the foreground process, and you cannot write to tty in an uncontrolled way (destroying everything that the foreground process wrote). Therefore, I think that the behavior you observe may be the only reasonable one ...
But: If you want to run some ncurses program in the background, you can use the http://www.gnu.org/software/screen/ screen, which is found in almost any Linux distribution. Run the process on a separate screen, then reconnect to "screen -r -D" or the like.
source share