Сценарий уровня выполнения

Я полагаю, что ответ на вашу проблему будет следующим:

sudo systemctl stop sddm

Также есть вероятность, что вам придется включить .service сзади.

2
04.01.2016, 22:44
1 ответ

Вы можете попробовать просто,

Создать файл с именем 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
1
27.01.2020, 22:20

Теги

Похожие вопросы