#include #include #include #include #include #include #include [[noreturn]] int main(int argc, char *argv[]) { if (argc < 2) { puts("usage: minit "); exit(1); } int rc = mount("proc", "/proc", "proc", 0, NULL); if (rc) puts("warning: unable to mount proc!"); rc = mount("sysfs", "/sys", "sysfs", 0, NULL); if (rc) { puts("warning: unable to mount sysfs!"); } else { rc = mount("debugfs", "/sys/kernel/debug", "debugfs", 0, NULL); if (rc) puts("warning: unable to mount debugfs!"); } rc = system(argv[1]); if (rc) { puts("the command exited with failure"); } sync(); rc = reboot(LINUX_REBOOT_CMD_HALT); /* If we made it here something went wrong with the reboot command */ exit(rc); }