From 13590ca98ac2fd4939b683adbfdd63392b559f3f Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Sat, 28 Nov 2015 14:58:01 +0100 Subject: Strip down procd to the necessary code, update copyright --- initd/init.c | 121 ----------------------------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 initd/init.c (limited to 'initd/init.c') diff --git a/initd/init.c b/initd/init.c deleted file mode 100644 index 9818c4f..0000000 --- a/initd/init.c +++ /dev/null @@ -1,121 +0,0 @@ -/* - * Copyright (C) 2013 Felix Fietkau - * Copyright (C) 2013 John Crispin - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 2.1 - * as published by the Free Software Foundation - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include -#include - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "../utils/utils.h" -#include "init.h" -#include "../watchdog.h" - -unsigned int debug = 0; - -static void -signal_shutdown(int signal, siginfo_t *siginfo, void *data) -{ - fprintf(stderr, "reboot\n"); - fflush(stderr); - sync(); - sleep(2); - reboot(RB_AUTOBOOT); - while (1) - ; -} - -static struct sigaction sa_shutdown = { - .sa_sigaction = signal_shutdown, - .sa_flags = SA_SIGINFO -}; - -static void -cmdline(void) -{ - char line[20]; - char* res; - long r; - - res = get_cmdline_val("init_debug", line, sizeof(line)); - if (res != NULL) { - r = strtol(line, NULL, 10); - if ((r != LONG_MIN) && (r != LONG_MAX)) - debug = (int) r; - } -} - -int -main(int argc, char **argv) -{ - pid_t pid; - - ulog_open(ULOG_KMSG, LOG_DAEMON, "init"); - - sigaction(SIGTERM, &sa_shutdown, NULL); - sigaction(SIGUSR1, &sa_shutdown, NULL); - sigaction(SIGUSR2, &sa_shutdown, NULL); - - early(); - cmdline(); - watchdog_init(1); - - pid = fork(); - if (!pid) { - char *kmod[] = { "/sbin/kmodloader", "/etc/modules-boot.d/", NULL }; - - if (debug < 3) { - int fd = open("/dev/null", O_RDWR); - - if (fd > -1) { - dup2(fd, STDIN_FILENO); - dup2(fd, STDOUT_FILENO); - dup2(fd, STDERR_FILENO); - if (fd > STDERR_FILENO) - close(fd); - } - } - execvp(kmod[0], kmod); - ERROR("Failed to start kmodloader\n"); - exit(-1); - } - if (pid <= 0) { - ERROR("Failed to start kmodloader instance\n"); - } else { - int i; - - for (i = 0; i < 120; i++) { - if (waitpid(pid, NULL, WNOHANG) > 0) - break; - sleep(1); - watchdog_ping(); - } - } - uloop_init(); - preinit(); - uloop_run(); - - return 0; -} -- cgit v1.2.3