#include void umain(int argc, char **argv) { int i, r, x, want; cprintf("initsh: running sh\n"); // being run directly from kernel, so no file descriptors open yet close(0); if ((r = opencons()) < 0) panic("opencons: %e", r); if (r != 0) panic("first opencons used fd %d", r); if ((r = dup(0, 1)) < 0) panic("dup: %e", r); while (1) { cprintf("init: starting sh\n"); r = spawnl("/sh", "sh", (char*)0); if (r < 0) { cprintf("init: spawn sh: %e\n", r); continue; } wait(r); } }