Ok, multiple executables are executed synchronously in the order given
on the rumpbake command line. It should probably be a
rumprun-specifyable order, but then again we should be able to specify
separate argv[]s too ... all in good time.
There's also a "secret" rumprun_daemon() call which backgrounds the
current process. Recall, my original use case for multiple executables
baked into the same image was to run programs which print various
statistics about what is going on. I'm not sure we'll keep
rumprun_daemon() after we solve the question of how to specify launch
order and & (note: not demogorgon), hence the no-public-prototype secrecy.
Anyway, you should be able to execute arbitrary config commands now by
simply baking in as the first program something like:
int
main()
{
rump_pub_netconfig_ifcreate("tap0");
rump_pub_netconfig_ifcreate("bridge0");
rump_pub_netconfig_bradd("bridge0", "tap0");
rump_pub_netconfig_bradd("bridge0", "xenif0");
rump_pub_netconfig_ifup("bridge0");
}
Note, that's executed after the regular config, so xenif0 should already
be configured according to whatever params you gave rumprun. Also note,
can't pass custom argv yet, but as a workaround use -e and getenv().