It depends. Do you want to wait for the first to finish
before spawning a second? Then you could use system.
Do you just want to spawn and forget? Ignore SIGCHLD,
and use fork and exec. Do you want
at most one child active at all times, which isn't allowed
to live for ever? Then you would use fork
and exec, and you'd set up handlers for
SIGCHLD and SIGALRM.