c - status de saída de um programa em execução em segundo plano

Eu tenho uma tarefa em que eu tenho que criar um mini-shell que é capaz de fazer um monte de coisas, incluindo o controle do trabalho. Consegui criar novos trabalhos usando fork e execvp. Mas eu também quero obter os códigos de saída dos programas executados pelo execvp. Pelo que eu tenho procurado em outros posts eu posso fazer isso usandoif(WIFEXITED(status)).

Mas também é necessário executar o processo em segundo plano se o usuário inserir '&' com o nome do processo no shell. Portanto, não faz sentido esperar que o processo pai aguarde enquanto o programa filho termina em segundo plano. Existe alguma interrupção que eu possa configurar que notifica o processo pai que o processo filho terminou? Então eu posso usar oif(WIFEXITED(status)) declaração para obter o código de saída.

Exemplo

sleep 100 &

será executado em segundo plano enquanto eu posso executar outros comandos do shell em primeiro plano simultaneamente.

questionAnswers(1)

yourAnswerToTheQuestion