Admin/exec_process/exec_process.c
changeset 50290 735bea8d89c9
parent 49551 9b12fcd0a889
child 50292 45fe12c9788e
equal deleted inserted replaced
50289:5a1194acbecd 50290:735bea8d89c9
    37   fclose(pid_file);
    37   fclose(pid_file);
    38 
    38 
    39 
    39 
    40   /* setsid */
    40   /* setsid */
    41 
    41 
    42   if (getgid() == getpid()) fail("Cannot set session id");
    42   if (setsid() == -1) {
    43   setsid();
    43     pid_t pid = fork();
       
    44     if (pid == -1) fail("Cannot set session id (failed to fork)");
       
    45     else if (pid != 0) exit(0);
       
    46     else if (setsid() == -1) fail("Cannot set session id (after fork)");
       
    47   }
    44 
    48 
    45 
    49 
    46   /* exec */
    50   /* exec */
    47 
    51 
    48   char *cmd_line[4];
    52   char *cmd_line[4];