• Travis Cross's avatar
    Check for execv(3) errors when reincarnating · 12da85ef
    Travis Cross 提交于
    When -reincarnate-reexec is given we run execv to restart FS.  If
    argv[0] isn't a full pathname then execv is going to fail.  While not
    common for a FS system started by init, this is a common occurrence
    when FS is started from the shell.
    
    Now if execv fails, we'll try execvp.  If that fails too then we'll
    fall back on the normal reincarnation behavior.
    
    Previously what would happen in that case is god would descend from
    the heavens and become mortal.  Leaving heaven absent, all hope for
    reincarnation was lost.
    
    (That is, we'd simply return from reincarnate_protect and the
    supervisor process would become the new instance of FS, so the trick
    would only work once.)
    12da85ef
switch.c 33.9 KB