From 9289c455e3c9e15352df13e6ae90250fd7f577c7 Mon Sep 17 00:00:00 2001 From: Nocturn9x Date: Thu, 9 Dec 2021 17:30:30 +0100 Subject: [PATCH] The shell is now spawned as a boot service --- src/core/mainloop.nim | 1 - src/core/services.nim | 2 +- src/main.nim | 6 ++++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/mainloop.nim b/src/core/mainloop.nim index 8c44972..214362c 100644 --- a/src/core/mainloop.nim +++ b/src/core/mainloop.nim @@ -29,7 +29,6 @@ proc mainLoop*(logger: Logger) = logger.info("System initialization complete, going idle") logger.switchToFile() try: - discard execShellCmd("/bin/login -f root") # TODO: Use a service while true: sleepSeconds(30) except: diff --git a/src/core/services.nim b/src/core/services.nim index 8d836bb..1883088 100644 --- a/src/core/services.nim +++ b/src/core/services.nim @@ -292,7 +292,7 @@ proc startService(logger: Logger, service: Service) = var arguments = split.words let progName = arguments[0] arguments = arguments[1..^1] - process = startProcess(progName, workingDir=service.workDir, args=arguments) + process = startProcess(progName, workingDir=service.workDir, args=arguments, options={poParentStreams}) if service.supervised and service.kind != Oneshot: var pid = posix.fork() if pid == 0: diff --git a/src/main.nim b/src/main.nim index 3f9448f..f3cc8e4 100644 --- a/src/main.nim +++ b/src/main.nim @@ -59,10 +59,16 @@ proc addStuff = exec="/bin/true", supervised=true, restart=Always, restartDelay=5, runlevel=Boot, workDir="/", kind=Simple, depends=(@[newDependency(Other, errorer)]), provides=(@[])) + var shell = newService(name="login", description="A simple login shell", kind=Simple, + getCurrentDir(), runlevel=Boot, exec="/bin/login -f root", + supervised=true, restart=Always, restartDelay=0, depends=(@[]), provides=(@[]) + ) addService(errorer) addService(echoer) addService(exiter) addService(test) + addService(shell) + proc main(logger: Logger, mountDisks: bool = true, fstab: string = "/etc/fstab", setHostname: bool = true, workerCount: int = 1) =