If the process is hanging around in a "zombie" state, you need to
wait for it. The problem is that the parent process has the right to know the exit status of its child, and the exit status is stored in the process table entry. The entry can't be deleted until after the status has been read with
wait. Under some types of Unix, you can set
$SIG{CHLD}='IGNORE' to tell it you don't care. You can also do tricks with double-
fork'ing to arrange for the process to be a child of init(8), but that's probably more trouble than it's worth.
If the process is still running, you'll need to kill it, then wait for it. You'll probably need the PID in this case, so it would be easiest to do your own fork and exec instead of letting system do it for you.
Good luck!