Оригинальное сообщение находится в разделе ниже и подробно описано как перехватить команду /sbin/shutdown.
Из ингибитора systemd:
systemd-inhibit - Выполнить программу с блокировкой блокировки
systemd-inhibit [OPTIONS...] [COMMAND] [ARGUMENTS...]
systemd-inhibit [OPTIONS...] --list
Оригинальное сообщение может быть используется для выполнения программы с блокировкой блокировки выключения, сна или холостого хода.
Блокировки запрета могут использоваться для блокировки или задержки запросов на спящий режим и отключение пользователя от пользователя, а также автоматической обработки бездействия ОС , Это полезно, чтобы избежать приостановки системы во время записи оптического диска или подобных операций, которые не должны прерываться.
Для получения дополнительной информации см. Ингибитор systemd .
Понятно понимать следующие опции:
--what=
Записывает один или несколько операций с блокировкой двоеточия: «shutdown «sleep», «sleep», «idle», «key-power-key», «handle-suspend-key», «handle-hibernate-key», «handle-lid-switch», для запрета перезагрузки / выключения / halt / kexec, приостановка / спящий режим, автоматическое определение режима ожидания или низкоуровневая обработка клавиши питания / сна и переключателя крышки соответственно. Если опустить, по умолчанию используется значение «idle: sleep: shutdown».--who=
Делает список разделенных двоеточиями одной или нескольких операций для блокировки: «выключение», «спящий», «холостой», «рукоятка» «ключ», «рукоятка-приостановка-ключ», «рукоятка-спящий ключ», «ручка-переключатель-ключ» для запрета перезагрузки / выключения / остановки / kexec, приостановка / спящий режим, автоматическое определение режима ожидания или низкоуровневая обработка клавиши питания / сна и переключателя крышки соответственно. Если это опущено, по умолчанию используется «idle: sleep: shutdown».--why=
Делает короткую, понятную для человека описательную строку по причине блокировки , По умолчанию используется «Неизвестная причина».--mode=
Делает короткую, понятную для человека описательную строку по причине блокировки. По умолчанию «Неизвестная причина».--list
Перечисляет все активные блокировки торможения вместо их получения.-h, --help
Перечисляет все активные блокировки торможения, а не приобретает их.--version 38] Распечатайте короткую строку и выйдите из нее.
Возвращает статус выхода исполняемой программы.
# systemd-inhibit wodim foobar.iso
Это сжигает ISO-изображение foobar.iso на компакт-диске с использованием ингибиторов wodim (1) systemd и блокирует спящий режим, выключение и простоя при этом.
systemd (1), logind.conf (5)
В концепции это выглядит довольно легко. Просто найдите команду, переименуйте ее и замените ее собственным скриптом, который вызывает переименованную версию:
$ type -a shutdown
shutdown is /sbin/shutdown
$ sudo mv /sbin/shutdown /sbin/shutdownoriginal
Затем отредактируйте собственный скрипт в /sbin/shutdown, содержащий как минимум:
#!/bin/bash
/sbin/shutdownoriginal
Затем отметьте свой скрипт как исполняемый для всех:
$ sudo chmod a+x /sbin/shutdown
Voila! Все, что вызывает выключение, теперь вызывает ваш скрипт, который затем вызывает исходный комманд.
На самом деле, к тому времени, когда ваш скрипт вызван, все может быть не в состоянии, которое вы ожидаете. Например, я ввел некоторые команды для записи выключения, но они не работают:
echo "/sbin/shutdown custom script calling /sbin/shutdownoriginal"
shutdowntime=`date`
echo "Last shutdown: $shutdowntime" >> /home/rick/shutdownlog.txt
Первый echo должен появиться в /var/log/syslog, но это не так. Второй echo должен был добавить строку в файл журнала, но этого не произошло. Это говорит мне, что к моменту выполнения команды /sbin/shutdown регистрация системы уже отключена, и система ввода-вывода файлов отключена.
. Лучший подход - это посмотреть на цель остановки и / входные ингибиторы. Я оставлю этот ответ здесь, хотя для других, которые могут подумать, что он может / должен / должен работать.
Как всегда помните YMMV - ваш пробег может очень.
Перейдите в Настройки -> Область & amp; Язык. В правом верхнем углу окна вы увидите кнопку «Вход в систему». Если вы нажмете эту кнопку, пользовательский интерфейс переключится на вариант для системных настроек. Оттуда вы можете добавить источники входных данных, которые вы хотите использовать на экране входа в систему. Если вы выбрали более одного источника, индикатор индикатора источника будет отображаться на экране входа в систему после следующей перезагрузки.
Кнопка может отображаться только в том случае, если более одного пользователя зарегистрированных в системе. В качестве обходного пути вы можете создать нового пользователя и удалить его после внесения необходимых изменений.
Перейдите в Настройки -> Область & amp; Язык. В правом верхнем углу окна вы увидите кнопку «Вход в систему». Если вы нажмете эту кнопку, пользовательский интерфейс переключится на вариант для системных настроек. Оттуда вы можете добавить источники входных данных, которые вы хотите использовать на экране входа в систему. Если вы выбрали более одного источника, индикатор индикатора источника будет отображаться на экране входа в систему после следующей перезагрузки.
Кнопка может отображаться только в том случае, если более одного пользователя зарегистрированных в системе. В качестве обходного пути вы можете создать нового пользователя и удалить его после внесения необходимых изменений.
Перейдите в Настройки -> Область & amp; Язык. В правом верхнем углу окна вы увидите кнопку «Вход в систему». Если вы нажмете эту кнопку, пользовательский интерфейс переключится на вариант для системных настроек. Оттуда вы можете добавить источники входных данных, которые вы хотите использовать на экране входа в систему. Если вы выбрали более одного источника, индикатор индикатора источника будет отображаться на экране входа в систему после следующей перезагрузки.
Кнопка может отображаться только в том случае, если более одного пользователя зарегистрированных в системе. В качестве обходного пути вы можете создать нового пользователя и удалить его после внесения необходимых изменений.
В моем Ubuntu Budgie 18.04 я просто запустил терминал:
sudo nano /etc/default/keyboard
, а затем изменил нежелательный макет в xxx в строке:
XKBVARIANT="XXX"
сохранить и перезагрузить .
PS: просто скопируйте макет «yyy» с первой строки на строку XKBVARIANT
XKBLAYOUT="yyy"
В моем Ubuntu Budgie 18.04 я просто запустил терминал:
sudo nano /etc/default/keyboard
, а затем изменил нежелательный макет в xxx в строке:
XKBVARIANT="XXX"
сохранить и перезагрузить .
PS: просто скопируйте макет «yyy» с первой строки на строку XKBVARIANT
XKBLAYOUT="yyy"