tech-userlevel archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: How to properly daemonize?
Date: Fri, 14 Jul 2017 18:25:32 +0200
From: Edgar =?iso-8859-1?B?RnXf?= <ef%math.uni-bonn.de@localhost>
Message-ID: <20170714162532.GJ50210%trav.math.uni-bonn.de@localhost>
| Perhaps I should state more clearly what my questions are
| -- is the re-parenting to PPID 1 just to have someone wait()?
Yes. But this is just how the system works, there's nothing magic
or special happening here, any process whose parent dies gets reparented
to init.
| -- what exactly is the point (save sanity) of redirecting stdXXX to /dev/null?
sanity.
| -- which flags to open() /dev/null with for stdXXX?
doesn't matter, the idea is that they don't get used - O_RDONLY for all
of them makes some sense, reading /dev/null simply gives EOF and the process
will (usually) read no more, writing to it would give an error, which is
probably the best outcome.
| -- is opening /dev/null and dup2()ing to stdXXX just an optimization?
Yes. Simpler for the process, and saves kernel data structs.
| -- what's the point of some daemons assuring the outer process doesn't exit
| before the innermost actually runs?
Depends upon the needs of the processes. Some creating processes want
to make sure it works, and try again if there was a failure. In other
cases timing matters, want to avoid going to the next step (whatever that is)
before the daemon is ready to work. In others it just doesn't matter.
| And:
| -- is there a way to detach in a shell script?
Not that I am aware of. Most of it you can do, but not the setsid().
kre
Home |
Main Index |
Thread Index |
Old Index