On Tue, 24 Jul 2012, Olivier Thauvin wrote:
Can't the switch be done online a perl/python/c programme, eg once the
programme is loaded everything can be done. Or by providing static
binaries of mv/rm/ln ?
There are of course 2 switches, /{lib,bin,bin,lib64} and /var/{run,lock} .
AFAIK the latter can just be done "online" as long as all sockets can be
moved. I'm not sure about the details of moving these special files,
though.
Moving the lib and bin dirs can also be done in-place but /lib/ld.so will
be unavailable for at most a few milliseconds so no new programs can be
started until the symlink is created (unless you know it's broken and
invoke the dynamic loader in /usr/lib(64) directly). Moving libc also
breaks everything until you run ldconfig, and shell scripts can't start
while /bin/sh is not there.
Christiaan