Ubuntu Mate & mdash; Перезагрузка или выключение при выходе из системы?

Я использую 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

Хотя это успешно перезагружает машину при выходе из системы, у меня есть одна проблема с ней. Он также перезагружает компьютер, когда я нахожусь в браузере входа в систему, и я выбираю другую учетную запись для входа в систему. Я не хочу перезагружаться, когда я фактически не зарегистрирован в учетной записи, и все, что я делаю, - это выбрать пользователя из раскрывающегося списка для входа в систему.

Может ли кто-нибудь сказать мне, есть ли другой способ пойдите об этом, который не вызывает перезагрузки из приветствия входа?

1
задан 23 June 2017 в 08:39

3 ответа

Отслеживать, поступаем ли мы из сеанса пользователя

Я отправляю ответ на свой вопрос здесь. Если у кого-то есть другие решения, я бы с удовольствием их видел.

Обзор решения Недостаточно проверить и проверить, зарегистрирован ли кто-либо, когда запускается session-cleanup-script, потому что этот скрипт запускается после того, как пользователи полностью вышла из системы.

Используйте greeter-setup-script для установки временного файла при входе в систему. При запуске session-cleanup-script проверьте, существует ли файл. Если это так, перезагрузите / завершите предварительную перезагрузку. Если это не так, завершите скрипт без перезагрузки / выключения

Обзор решения Пример /etc/lightdm/lightdm.conf.d/50-ubuntu-mate.conf file

[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 script

#!/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 script

#!/bin/bash

# Check the status file. If it exists, remove it and continue the script.
# If it does not exist, drop out of the script.
[ -e /tmp/loggedIn ] && rm /tmp/loggedIn || exit

# ... do whatever else needs to be done when sessions end
# in my case this amounts to ...
/sbin/shutdown -h 0
0
ответ дан 22 May 2018 в 21:15

Отслеживать, поступаем ли мы из сеанса пользователя

Я отправляю ответ на свой вопрос здесь. Если у кого-то есть другие решения, я бы с удовольствием их видел.

Обзор решения Недостаточно проверить и проверить, зарегистрирован ли кто-либо, когда запускается session-cleanup-script, потому что этот скрипт запускается после того, как пользователи полностью вышла из системы.

Используйте greeter-setup-script для установки временного файла при входе в систему. При запуске session-cleanup-script проверьте, существует ли файл. Если это так, перезагрузите / завершите предварительную перезагрузку. Если это не так, завершите скрипт без перезагрузки / выключения

Обзор решения Пример /etc/lightdm/lightdm.conf.d/50-ubuntu-mate.conf file

[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 script

#!/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 script

#!/bin/bash # Check the status file. If it exists, remove it and continue the script. # If it does not exist, drop out of the script. [ -e /tmp/loggedIn ] && rm /tmp/loggedIn || exit # ... do whatever else needs to be done when sessions end # in my case this amounts to ... /sbin/shutdown -h 0
0
ответ дан 18 July 2018 в 11:12

Отслеживать, поступаем ли мы из сеанса пользователя

Я отправляю ответ на свой вопрос здесь. Если у кого-то есть другие решения, я бы с удовольствием их видел.

Обзор решения Недостаточно проверить и проверить, зарегистрирован ли кто-либо, когда запускается session-cleanup-script, потому что этот скрипт запускается после того, как пользователи полностью вышла из системы.

Используйте greeter-setup-script для установки временного файла при входе в систему. При запуске session-cleanup-script проверьте, существует ли файл. Если это так, перезагрузите / завершите предварительную перезагрузку. Если это не так, завершите скрипт без перезагрузки / выключения

Обзор решения Пример /etc/lightdm/lightdm.conf.d/50-ubuntu-mate.conf file

[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 script

#!/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 script

#!/bin/bash # Check the status file. If it exists, remove it and continue the script. # If it does not exist, drop out of the script. [ -e /tmp/loggedIn ] && rm /tmp/loggedIn || exit # ... do whatever else needs to be done when sessions end # in my case this amounts to ... /sbin/shutdown -h 0
0
ответ дан 24 July 2018 в 19:44

Другие вопросы по тегам:

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