/* * Copyright (c) 2007-2015 The OpenRC Authors. * See the Authors file at the top-level directory of this distribution and * https://github.com/OpenRC/openrc/blob/master/AUTHORS * * This file is part of OpenRC. It is subject to the license terms in * the LICENSE file found in the top-level directory of this * distribution and at https://github.com/OpenRC/openrc/blob/master/LICENSE * This file may not be copied, modified, propagated, or distributed * except according to the terms contained in the LICENSE file. */ #include <sys/types.h> #include <sys/time.h> #include <errno.h> #include <ctype.h> #include <inttypes.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <signal.h> #include <string.h> #include <syslog.h> #include <time.h> #include <unistd.h> #include "einfo.h" int main(void) { const char *p = getenv("RC_PID"); int pid; if (p && sscanf(p, "%d", &pid) == 1) { if (kill(pid, SIGUSR1) != 0) eerrorx("rc-abort: failed to signal parent %d: %s", pid, strerror(errno)); return EXIT_SUCCESS; } return EXIT_FAILURE; }