Reduce recv() buffer size in general
Properly create detached daemon process

Previously the "daemon" is simply a background process created by
the fork() call.  It leaks file descriptors attached to the controlling
tty even after closing, among other problems.  Now we follow the Unix
way of creating daemons, i.e. totally detached from the parent
environment.