Я полагаю, что ответ на вашу проблему будет следующим:
sudo systemctl stop sddm
Также есть вероятность, что вам придется включить .service сзади.
Вы можете попробовать просто,
Создать файл с именем myscript
со следующим содержанием:
#!/bin/bash
echo -n "Enter Run level":
read rl;
sudo init $rl;
Где echo
используется для печати того, что вводится, read
используется для получения ввода и сохранения в переменной rl
и sudo init $rl;
для выполнения команды для изменения уровня выполнения.
Для большего контроля/проверки ввода можно использовать циклы, такие как while
и case
.
Вы должны дать разрешение на выполнение: sudo chmod +x myscript
, чтобы он мог быть выполнен.
Затем вы можете запустить скрипт как:
$ ./myscript
$ Enter Run level : 3
EDIT:
как @RuiFRibeiro подсказал, команда для изменения уровня выполнения - telinit
:
NAME
telinit - change system runlevel
SYNOPSIS
telinit [OPTION]... RUNLEVEL
DESCRIPTION
telinit may be used to change the system runlevel.
Поэтому, вы должны использовать telinit
вместо init
в скрипте.
А для проверки уровня выполнения можно использовать команду who -r
или runlevel
, которая выводит предыдущий и текущий уровень выполнения.
$ who -r | awk '{print $1,$2}'
run-level 3
$ runlevel
2 3