Я использую 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 проверьте, существует ли файл. Если это так, перезагрузите / завершите предварительную перезагрузку. Если это не так, завершите скрипт без перезагрузки / выключенияОбзор решения Пример /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
Я отправляю ответ на свой вопрос здесь. Если у кого-то есть другие решения, я бы с удовольствием их видел.
Обзор решения Недостаточно проверить и проверить, зарегистрирован ли кто-либо, когда запускается 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
Я отправляю ответ на свой вопрос здесь. Если у кого-то есть другие решения, я бы с удовольствием их видел.
Обзор решения Недостаточно проверить и проверить, зарегистрирован ли кто-либо, когда запускается 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