equal
deleted
inserted
replaced
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]; |