diff options
-rw-r--r-- | src/unitd/CMakeLists.txt | 2 | ||||
-rw-r--r-- | src/unitd/service/instance.c | 1 | ||||
-rw-r--r-- | src/unitd/unitd.c | 15 |
3 files changed, 10 insertions, 8 deletions
diff --git a/src/unitd/CMakeLists.txt b/src/unitd/CMakeLists.txt index 6ef73f6..e07528b 100644 --- a/src/unitd/CMakeLists.txt +++ b/src/unitd/CMakeLists.txt @@ -1,6 +1,6 @@ add_executable(unitd unitd.c signal.c watchdog.c state.c askconsole.c ubus.c system.c early.c service/service.c service/instance.c utils.c) -set_property(TARGET unitd PROPERTY COMPILE_FLAGS "-std=gnu99 -Wall ${JSON_C_CFLAGS_OTHER}") +set_property(TARGET unitd PROPERTY COMPILE_FLAGS "-std=gnu99 -Wall -D_GNU_SOURCE ${JSON_C_CFLAGS_OTHER}") set_property(TARGET unitd PROPERTY LINK_FLAGS "${JSON_C_LDFLAGS_OTHER}") set_property(TARGET unitd PROPERTY INCLUDE_DIRECTORIES ${JSON_C_INCLUDE_DIR}) target_link_libraries(unitd ubox ubus blobmsg_json ${JSON_C_LIBRARIES}) diff --git a/src/unitd/service/instance.c b/src/unitd/service/instance.c index 0949c0f..57c6a8f 100644 --- a/src/unitd/service/instance.c +++ b/src/unitd/service/instance.c @@ -15,7 +15,6 @@ * GNU General Public License for more details. */ -#define _GNU_SOURCE #include <sys/resource.h> #include <sys/types.h> #include <sys/socket.h> diff --git a/src/unitd/unitd.c b/src/unitd/unitd.c index aa26be3..abbf1b6 100644 --- a/src/unitd/unitd.c +++ b/src/unitd/unitd.c @@ -16,16 +16,14 @@ */ #include "unitd.h" -#include "watchdog.h" -#include <sys/wait.h> #include <sys/types.h> -#include <sys/stat.h> -#include <sys/reboot.h> +#include <sys/prctl.h> -#include <unistd.h> +#include <errno.h> #include <getopt.h> -#include <libgen.h> +#include <string.h> +#include <unistd.h> unsigned int debug = 4; @@ -42,12 +40,17 @@ static int usage(const char *prog) int main(int argc, char **argv) { + static char unitd[] = "unitd"; int ch; + if (getpid() != 1) { fprintf(stderr, "error: must run as PID 1\n"); return 1; } + program_invocation_short_name = unitd; + prctl(PR_SET_NAME, unitd); + ulog_open(ULOG_KMSG, LOG_DAEMON, "unitd"); while ((ch = getopt(argc, argv, "d:s:")) != -1) { |