[Resolvconf-devel] Question about implementation
jdthood at yahoo.co.uk
Wed Feb 22 15:15:05 UTC 2006
Identity Guarded wrote:
> I was interested in implementing something for local use similar to what you
> do with the /etc/resolvconf/run symlink linking
> to /dev/shm/resolvconf. /dev/shm is volatile, though, isn't it?
> I can't
> quite find where /dev/shm/resolvconf is set up upon a system startup.
It is created in /etc/init.d/resolvconf.
> I don't think it's done in /etc/init.d/resolvconf because of the following
> expression in line 56:
> RUN_CANONICALDIR="$(readlink -f "$RUN_DIR")"
> Because of the -f switch, a broken run symlink would elicit an empty string
> from readlink, which would cause /etc/init.d/resolvconf to exit out with an
> error message.
Because the PATH includes "/lib/init" as the first element, "readlink" runs
/lib/init/readlink rather than /bin/readlink. /lib/init/readlink is a custom
version of the readlink program which implements the old (i.e., pre-woody)
"tolerant" behaviour of returning a value even if the target of the symlink
does not exist. The current "intolerant" behaviour of /bin/readlink is to
fail to return any value of the target of the symlink does not exist.
/lib/init/readlink is included in the initscripts package temporarily until
version 5.9x of coreutils makes it into testing. In the latter versions of
the coreutils package, "readlink -f" implements the "tolerant" behaviour
again and "readlink -e" implements "intolerant" behaviour.
More information about the Resolvconf-devel