| written by Mike Frysinger |
| |
| https://sourceforge.net/tracker/?func=detail&aid=3132053&group_id=5616&atid=305616 |
| |
| Rather than using the fork function (which doesn't 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++) |