fprintf(fp, "CTDL_HOSTNAME=%s\n", hostname);
fprintf(fp, "CTDL_PORTNAME=%s\n", portname);
fprintf(fp, "\n"
- "test -d /var/run || exit 0\n"
"\n"
"case \"$1\" in\n"
"\n"
*/
chdir("/");
+ signal(SIGHUP, SIG_IGN);
+ signal(SIGINT, SIG_IGN);
+ signal(SIGQUIT, SIG_IGN);
+
child = fork();
if (child != 0) {
- if (pid_file) {
- fp = fopen(pid_file, "w");
- if (fp != NULL) {
- fprintf(fp, "%d\n", child);
- fclose(fp);
- }
- }
exit(0);
}
-
- signal(SIGHUP, SIG_IGN);
- signal(SIGINT, SIG_IGN);
- signal(SIGQUIT, SIG_IGN);
setsid();
umask(0);
else {
signal(SIGTERM, SIG_IGN);
+ if (pid_file) {
+ fp = fopen(pid_file, "w");
+ if (fp != NULL) {
+ fprintf(fp, "%d\n", current_child);
+ fclose(fp);
+ }
+ }
waitpid(current_child, &status, 0);
}