diff --git a/c-daemon/bin/test b/c-daemon/bin/test index 6cb9a37..4978bb4 100755 Binary files a/c-daemon/bin/test and b/c-daemon/bin/test differ diff --git a/c-daemon/daemon/daemon.c b/c-daemon/daemon/daemon.c index ccd49c7..07b4f9f 100644 --- a/c-daemon/daemon/daemon.c +++ b/c-daemon/daemon/daemon.c @@ -17,61 +17,42 @@ int _daemon(int nochdir, int noclose){ // pid_t defined in sys/types.h // pid_t is a signed int data type - logg(1); pid = fork(); // fork of the parent process // fork() function defined in unistd.h - logg(2); - if (pid < 0){ - logg(3); exit(EXIT_FAILURE); // exit and EXIT_FAILURE defined in stdlib.h } else if (pid > 0){ - logg(4); exit(EXIT_SUCCESS); } - logg(5); sid = setsid(); - logg(8); if (sid < 0) { - logg(9); exit(EXIT_FAILURE); } - logg(10); - if ((chdir("/")) < 0) { - logg(17); exit(EXIT_FAILURE); } - logg(11); if (!noclose) { - logg(12); - for (int i = 0; i < NR_OPEN; i++) + for (int i = 0; i < NR_OPEN; i++){ close(i); - logg(13); + // close(STDOUT_FILENO); => close(1); + // close(STDERR_FILENO); => close(2); + } open("/dev/null", O_RDWR); - logg(14); dup(0); - logg(15); dup(0); - logg(16); } - // close(STDOUT_FILENO); - // close(STDERR_FILENO); while (1) { - logg(6); int status = system("./info"); // TODO SECURITY ISSUE // LINK https://stackoverflow.com/questions/5237482/how-do-i-execute-an-external-program-within-c-code-in-linux-with-arguments# - sleep(1); } - logg(7); exit(EXIT_SUCCESS); } \ No newline at end of file diff --git a/c-daemon/daemon/test.c b/c-daemon/daemon/test.c index 07b860c..bfcefa3 100644 --- a/c-daemon/daemon/test.c +++ b/c-daemon/daemon/test.c @@ -3,10 +3,7 @@ int _daemon (int, int); int main(){ - printf("START"); _daemon(0, 0); - printf("END"); getchar(); - printf("CLOSE"); return 0; } \ No newline at end of file