- clone has limited number of flags.I also don't understand why you are eager to introduce new sys calls like pkill(path_to_process), but is trying to use waitpid() for pspace die notifications? Maybe it is simply better to introduce container specific syscalls which should be clean and tidy, instead of messing things up with clone()/waitpid() and so on? The more simple code we have, the better it is for all of us.
now that you mention it, maybe we should have a few
rounds how those 'generic' container syscalls would look like?
I still like the following:
clone(): extended with flags for asking a private copy of various
namespaces. For the CLONE_NEWPIDSPACE flag, the pid which
is returned to the parent process is it's handle to the
new pidspace.
sys_execpid(pid, argv, envp): exec a new syscall with the requestedthe problem is that in real life environments where executables can be substitutes this is kind of a security issue. Also I really hate the idea of using exec() for changing something.
pid, if the pid is available. Else either return an error,
or pick a random pid. Error makes sense to me, but that's
probably debatable.
sys_fork_slide(pid): fork and slide into the pidspace belong to pid.Again, you concentrate on PIDspaces forgeting about all the other namespaces.
This way we can do things like
p = sys_fork_slide(2794);
if (p == 0) {
kill(2974);
} else {
waitpid(p, 0, 0);
}
Ok, this last one in particular needs to be improved, but these two
syscalls and the clone flags together give us all we need. Right?