CC Oleg, lkml On Tue, Sep 5, 2017 at 9:34 AM, Rob Landley <rob@xxxxxxxxxxx> wrote: > For years I've wanted an execve() system call modification that let me > pass a NULL as the first argument to say "re-exec this program please". > Because on nommu you've got to exec something to unblock vfork(), and > daemons (or things like busybox and toybox) want to re-exec themselves. > I just hit this again trying to implement a nommu-friendly strace(): the > one on github doesn't SIGSTOP the child before the execve() of the > process to trace because vfork(), and just races and misses the first > few system calls on nommu instead...) > > The problem with exec /proc/self/exe is A) I haven't necessarily got > /proc mounted, B) in a chroot the original binary might not be in scope > anymore. But I'm already _running_ this program. If I could fork() I > could already get a second copy of the sucker and call main() again > myself if necessary, but I can't, so... > > I'm aware there's a possible "but what if it was suid and it's already > dropped privileges" argument, and I'm fine with execve(NULL) not > honoring the suid bit if people feel that way. I just wanna unblock > vfork() while still running this code. (A way to detect I did this would > be great too, but the normal tweaking of argv[] or envp[] to let main > know we're a child still works.) > > Is there a _reason_ the kernel doesn't do this, or has nobody bothered > to code it up yet? > > Rob -- To unsubscribe from this list: send the line "unsubscribe linux-embedded" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html