Re: Which process context does /sbin/hotplug run in?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




> And I'm not _complaining_ about it.  Just fiddling around with fun
> stuff.  If I get really bored I'll figure a way to split the tree
> so there are two completely unconnected mount trees in different
> processes.  (Get a private  namespace that's chrooted into
> something that somebody else does a umount -l on from their space.
> Or without using umount -l, just have two processes chroot into
> other mount points which should theoretically garbage collect the
> old root if no processes still references it, which presumably
> means one of the processes is init...)

Well, actually, it isn't that hard.  Just run something like this:

#! /bin/sh
mkdir /a
mkdir /b
mount -t tmpfs tmpfs /a
mount -t tmpfs tmpfs /b
mkdir /a/old
mkdir /b/old
tool_to_fork_in_new_namespace sh -c "pivot_root /a /a/old && umount -
l /a/old && read"
pivot_root /b /b/old && umount -l /b/old && read

All you need to write is tool_to_fork_in_new_namespace which does
clone(CLONE_NEWNS) followed by exec().

Cheers,
Kyle Moffett

I've done that "two disconnected trees" in 2.0 kernel. Boot with an initrd.
/linuxrc runs something in the background (telnet server, just for kicks)
/initrd doesn't exist ont the new root.
So, try mount new root succeeds, but try unmount old root fails.
Presto. Two disconnected trees.

I wonder if it still works.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux