hc
2023-11-06 36f0949ef9854b82a9a3154d970da4e3b8d12a61
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
written by Mike Frysinger
 
https://sourceforge.net/tracker/?func=detail&aid=3132053&group_id=5616&atid=305616
 
Rather than using the fork function (which doesnt work on nommu
systems), simply use the daemon() function instead (which does
work). this should work the same before and after for all systems.
 
--- a/irattach/util.c
+++ b/irattach/util.c
@@ -156,21 +156,10 @@
 
 void fork_now(int ttyfd)
 {
-    int ret;
     int i;
 
-    if ((ret = fork()) > 0)
-        exit(0);
-    
-    if (ret == -1)
-        syslog(LOG_INFO, "forking: %m");
-    if (setsid() < 0)
-        syslog(LOG_INFO, "detaching from tty: %m");
-
-    if ((ret = fork()) > 0) {
-        /* cleanup_files = 0; */
-        exit(0);
-    }
+    if (daemon(1, 1))
+        syslog(LOG_INFO, "daemon: %m");
 
     /* Close all open inherited files! Except for ttyfd! */
     for (i = 0; i < 64; i++)