commit:     a77ee2e94191ba1a286b8a6835f76556481566ba
Author:     William Hubbs <w.d.hubbs <AT> gmail <DOT> com>
AuthorDate: Mon May 22 16:29:14 2017 +0000
Commit:     William Hubbs <williamh <AT> gentoo <DOT> org>
CommitDate: Mon May 22 16:29:23 2017 +0000
URL:        https://gitweb.gentoo.org/proj/openrc.git/commit/?id=a77ee2e9

init: add ability to switch to single user mode

 src/rc/openrc-init.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/rc/openrc-init.c b/src/rc/openrc-init.c
index 8abe0dd6..398259cc 100644
--- a/src/rc/openrc-init.c
+++ b/src/rc/openrc-init.c
@@ -105,6 +105,14 @@ static void handle_shutdown(const char *runlevel, int cmd)
        reboot(cmd);
 }
 
+static void handle_single(void)
+{
+       pid_t pid;
+
+       pid = do_openrc("single");
+       while (waitpid(pid, NULL, 0) != pid);
+}
+
 static void reap_zombies(void)
 {
        pid_t pid;
@@ -201,6 +209,8 @@ int main(int argc, char **argv)
                        handle_shutdown("reboot", RB_AUTOBOOT);
                else if (strcmp(buf, "reexec") == 0)
                        handle_reexec(argv[0]);
+               else if (strcmp(buf, "single") == 0)
+                       handle_single();
        }
        return 0;
 }

Reply via email to