signal(SIGCHLD, SIG_IGN);
signal(SA_NOCLDWAIT, SIG_IGN);
if( (ppid = fork()) == -1 ) { return(-1); }
else if( ppid == 0 )
{
status=execlp(cmd, cmd, NULL);
sleep(1);
exit(0);
}
do
{
wpid = wait(&status);
} while( wpid != -1 && wpid != ppid );
signal(SIGCHLD, SIG_DFL);
signal(SA_NOCLDWAIT, SIG_DFL);