I need to start some Ruby programs from a C program. The C program
needs to be able to terminate the Ruby programs when it either exits
or some condition is met.
sleep(5);
if (killpg(0, SIGKILL) == -1)
perror("killpg");
printf("main program ending\n");
return 0;
}
Which seems to work fine on a non-ruby program (i.e. another C
program). But the Ruby program (a simple while-true loop that prints
stuff) doesn't exit when the C program does killpg.
Fixed. If I fork, and then launch the ruby program via system() in
the child process, the killpg kills the ruby program.
···
On 6/1/05, Joe Van Dyk <joevandyk@gmail.com> wrote:
Hi,
I need to start some Ruby programs from a C program. The C program
needs to be able to terminate the Ruby programs when it either exits
or some condition is met.
sleep(5);
if (killpg(0, SIGKILL) == -1)
perror("killpg");
printf("main program ending\n");
return 0;
}
Which seems to work fine on a non-ruby program (i.e. another C
program). But the Ruby program (a simple while-true loop that prints
stuff) doesn't exit when the C program does killpg.