From 65f351469eb40a4c711b491c36e1372b1f41f19b Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Mon, 27 Nov 2006 02:58:36 +0000 Subject: [PATCH] ctdlsvc.c: added. This will be used to build init scripts. --- webcit/ctdlsvc.c | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 webcit/ctdlsvc.c diff --git a/webcit/ctdlsvc.c b/webcit/ctdlsvc.c new file mode 100644 index 000000000..69c5277a9 --- /dev/null +++ b/webcit/ctdlsvc.c @@ -0,0 +1,47 @@ +/* + * $Id: $ + * + * This is just a quick little hack to start a program and automatically + * restart it if it exits with a nonzero exit status. + * + */ + +#include +#include +#include +#include +#include +#include + + +int main(int argc, char **argv) +{ + pid_t child = 0; + int status = 0; + + --argc; + ++argv; + + do { + child = fork(); + + if (child < 0) { + perror("fork"); + exit(errno); + } + + else if (child == 0) { + exit(execvp(argv[0], &argv[0])); + } + + else { + printf("%s: started. pid = %d\n", argv[0], child); + waitpid(child, &status, 0); + printf("Exit code %d\n", status); + } + + } while (status != 0); + + exit(0); +} + -- 2.39.2