I wrote a mock mini-shell program which could accept user commands just as a shell would. I am trying to replicate the functionality of stopping/resuming a process launched from within my mini-shell.
I was able to intercept and handle the SIGTSTP signal to stop a long-running process (w/o stopping my mini-shell) which simply echoes "Hi" every X seconds.
I was also able to resume the long-running process using kill(pid, SIGCONT); (in this case kill(2903651, SIGCONT) will be executed). Problem is, the sleep child process still remains in a stopped state and the "Hi" messages doesn't resume printing. Other processes which doesn't have a child process works just fine.
My question is, are there any ways to make the process of the given pid resume entirely, including its children?

