Я использую Ubuntu Mate 16.04. Я хотел бы настроить систему так, чтобы она перезагружалась или закрывалась при выходе из системы. Вот что я сделал до сих пор:
Я создал /etc/lightdm/lightdm.conf.d/50-ubuntu-mate.conf
со следующим содержанием.
[Seat:*] user-session=mate session-cleanup-script=/sbin/reboot allow-guest=false
Хотя это успешно перезагружает компьютер при выходе из системы, у меня есть одна проблема с ним. Он также перезагружает машину, когда я нахожусь у приветствующего, и я выбираю другую учетную запись пользователя для входа. Я не хочу перезагружаться, когда я на самом деле не вошел в учетную запись, и все, что я делаю, это выбираю пользователя из выпадающего списка, чтобы войти в систему как.
Может кто-нибудь сказать мне, есть ли другой способ пойти по этому поводу, который не вызывает перезагрузки от приветствия входа?
Я публикую ответ на свой вопрос здесь. Если у кого-то есть другие решения, я бы хотел их увидеть.
Обзор решения
Недостаточно проверить, не вошел ли кто-либо в систему при запуске session-cleanup-script
, потому что этот скрипт запускается после полного выхода пользователей из системы. Я решил так отследить это.
greeter-setup-script
для установки временного файла при входе в систему session-cleanup-script
проверьте, существует ли файл. [ 1122] Пример конфигурации
Пример /etc/lightdm/lightdm.conf.d/50-ubuntu-mate.conf
файл
[Seat:*] user-session=mate greeter-setup-script=/path/to/greeter-setup.sh session-cleanup-script=/path/to/session-cleanup.sh # ... (other settings)
Пример greeter-setup.sh
скрипт
#!/bin/bash
# Start watching for login and on login, set a status file
(
while [ $(who | grep "(:0)" | wc -l) -eq 0 ]
do
sleep 1
done
touch /tmp/loggedIn
) &
# ... do anything else that needs to be done when the greeter starts
Пример session-cleanup.sh
скрипт