[systemd-devel] Why do we must use the close_all_fds(3) function in some files?
Geunsik Lim
geunsik.lim at gmail.com
Mon Jun 16 15:59:29 PDT 2014
On Tue, Jun 17, 2014 at 12:24 AM, Lennart Poettering <lennart at poettering.net
> wrote:
> On Mon, 16.06.14 21:32, Geunsik Lim (geunsik.lim at gmail.com) wrote:
>
> > Hi all,
> >
> > Recently, i checked that there are some of the "close_all_fds" functions
> > as follows
> > Why we Systemd run this functions? Whey this functions need Systemd's
> > management?
> >
> > invain at u1204lgs:/sandbox/tizentvfolder/systemd$ grep -R "close_all_fds"
> ./*
> > ./src/nspawn.c: close_all_fds(NULL, 0);
> > ./src/util.c:int close_all_fds(const int except[], unsigned n_except) {
> > ./src/util.c: close_all_fds(NULL, 0);
> > ./src/main.c: close_all_fds(NULL, 0);
> > ./src/spawn-agent.c: close_all_fds(NULL, 0);
> > ./src/execute.c: err = close_all_fds(socket_fd >= 0 ?
> > &socket_fd : fds,
> > ./src/execute.c: err = close_all_fds(fds, n_fds);
> > ./src/util.h:int close_all_fds(const int except[], unsigned n_except);
>
> David is right, this is really just a safety net, and particularly
> useful when one of our tools is invoked from arbitrary code that might
> not be written cleanly.
>
It seems that a goal of close_all_fds() is garbage collector to guarantee
available file descriptors for new fopen() system call.
Nowadays, the modern computer system is multi-process/multi-thread scheme
more than single-process/multi-thread.
Does systemd have to care the number of "open file size"? Actually, Is this
function need for safety net?
For example,
invain at u1204lgs:/opt/git-systemd$ ulimit -n
1024
If Systemd does not execute the close_all_fds() functions,
What will be happened in real environment?
On the other hand, if systemd have to not close more than two file
descriptors(e.g. 5, 17, 19) for some case to release Linux distribution
based on Systemd, can we use close_all_fds(except, ***)? In this case, Do
we have to specify withclose_all_fds(except, 3 + 19)?
Thanks,
>
> Lennart
>
> --
> Lennart Poettering, Red Hat
>
--
----
Best regards,
Geunsik Lim, Samsung Electronics
http://leemgs.fedorapeople.org
----
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20140617/b0315a8e/attachment-0001.html>
More information about the systemd-devel
mailing list