
This is a repost of the start container support. Changes from the last version: * Report an error when allocation for init string fails in lxcExecContainerInit() * Change to find by name in lxcStartDomain() * Move tty forwarding process outside of the container. This allows consolidating the forwarding into a single process at a later time. This also means the the container init process as specified by the user now runs as the container root process with pid = 1. The tty setup will require some (hopefully minor) modifications when pts namespaces are enabled. * Add header comments to a number of the functions. This is an updated rough outline of the functions involved in starting a container and the namespace and process under which they run: lxcVmStart() - runs under libvirtd process lxcSetupTtyTunnel() - opens and configures parent tty lxcSetupContainerTty() - opens container tty fork child process calls lxcTtyForward() see below parent continues lxcStartContainer - see below return lxcStartContainer() - runs in parent namespace, libvirtd process Allocate stack for container clone() - child process will start in lxcChild() see below return lxcChild() - runs within container, child process from clone() mount user filesystems mount container /proc lxcExecWithTty() - see below, will not return lxcExecWithTty() - runs within container, root process lxcSetContainerStdio - sets container tty as primary console lxcExecContainerInit - see below, should not return exit() lxcExecContainerInit() - runs within container, root process exec containers init if exec fails, exit() Thanks! -- Best Regards, Dave Leskovec IBM Linux Technology Center Open Virtualization