Выключение компьютера по закрытию приложения

Здесь можно задавать любые вопросы по установке и настройке Lubuntu Linux

Модератор: Vadim


Автор темы
WarMan
Сообщения: 24
Зарегистрирован: 08 сен 2017, 19:49

Выключение компьютера по закрытию приложения

#1

Сообщение WarMan » 27 окт 2017, 22:52

Всем привет!
Каким образом можно организовать выключение компьютера при закрытии приложения (x2go клиент).
Подскажите, кто-нибудь, пожалуйста! Весь интернет облазил, кажется. Ничего подобного не нашел.
Очень надо!


igorpskov
Сообщения: 7
Зарегистрирован: 28 окт 2017, 13:52

Выключение компьютера по закрытию приложения

#2

Сообщение igorpskov » 28 окт 2017, 14:00

Как вариант - написать простой скрипт из 2-х строчек.

Код: Выделить всё

x2goclient
shutdown -h now
Сделать выполняемым.
Заменить в файле .desktop для запуска клиента значение параметра Exec с x2goclient на полный путь к скрипту.


Автор темы
WarMan
Сообщения: 24
Зарегистрирован: 08 сен 2017, 19:49

Выключение компьютера по закрытию приложения

#3

Сообщение WarMan » 29 окт 2017, 08:33

igorpskov, ух-ты, спасибо! попробую.


Автор темы
WarMan
Сообщения: 24
Зарегистрирован: 08 сен 2017, 19:49

Выключение компьютера по закрытию приложения

#4

Сообщение WarMan » 29 окт 2017, 09:12

igorpskov, Благодарю, Уважаемый! Ваш вариант работает! Очень простой рабочий вариант!
На форуме ubuntu.ru вот что посоветовали:
AnrDaemon писал(а): google:kiosk+mode


Автор темы
WarMan
Сообщения: 24
Зарегистрирован: 08 сен 2017, 19:49

Выключение компьютера по закрытию приложения

#5

Сообщение WarMan » 29 окт 2017, 09:21

igorpskov, всё работает. только логику скрипта не понимаю. я вообще совсем начинающий в никсах.
x2goclient - запускает приложение. это понятно.
shutdown -h now - это команда выключения компьютера. Вроде тоже понятно.
Но как именно работает механизм, как система понимает что именно после закрытия приложения нужно выключать пк?
Или так: сперва одна команда, после завершения -> следующая...? Очередь из команд.
Поможете понять?
И еще shutdown -h now и poweroff - есть разница?


igorpskov
Сообщения: 7
Зарегистрирован: 28 окт 2017, 13:52

Выключение компьютера по закрытию приложения

#6

Сообщение igorpskov » 30 окт 2017, 02:50

сперва одна команда, после завершения -> следующая...? Очередь из команд.
Да. Так работают все линейные алгоритмы.
В никсах, не в никсах - без разницы.
как система понимает что именно после закрытия приложения нужно выключать пк?
Поможете понять?
Конечно, нет ничего плохого в изучении недр системы, но лезть внутрь в данном конкретном случае вроде как и не надо.
Для простого администрирования может не понадобиться.
Вот честно, до вашего вопроса мало задумывался, скрипты работают и это всё что от них требуется.
Нужно будет - углублюсь внутрь.
shutdown -h now и poweroff - есть разница?

Код: Выделить всё

halt, poweroff, reboot
These are legacy commands available for compatibility only.
Т.е. по-русски poweroff "Устар."
Плюс злые языки пишут, что halt/poweroff тупо вырубает питание компьютера и соответственно может повредить систему.
Пока не проверял, пользуюсь shutdown.


borisbritva
Сообщения: 1
Зарегистрирован: 23 май 2018, 14:55

Выключение компьютера по закрытию приложения

#7

Сообщение borisbritva » 23 май 2018, 14:57

А у меня не работает, что не так делаю?
Из консоли если запускаю скрипт работает, по ярлыку нет

Аватара пользователя

adventurer
Супермодератор
Сообщения: 3200
Зарегистрирован: 15 июн 2011, 18:24

Выключение компьютера по закрытию приложения

#8

Сообщение adventurer » 23 май 2018, 16:23

Какой текст ярлыка?


ВикторА
Сообщения: 457
Зарегистрирован: 06 ноя 2011, 11:10

Выключение компьютера по закрытию приложения

#9

Сообщение ВикторА » 03 июн 2018, 16:20

WarMan писал(а):
29 окт 2017, 09:21
igorpskov, всё работает. только логику скрипта не понимаю. я вообще совсем начинающий в никсах.
x2goclient - запускает приложение. это понятно.
shutdown -h now - это команда выключения компьютера. Вроде тоже понятно.
Но как именно работает механизм, как система понимает что именно после закрытия приложения нужно выключать пк?
Или так: сперва одна команда, после завершения -> следующая...? Очередь из команд.
Поможете понять?
Пусть меня гуру поправят, но это тот случай, когда скрипт работает, хотя и написан с ошибками. Но он может и не срабатывать...У меня не установлено такое приложение, но из описанного здесь я понимаю, что в файле .desktop клиента имеется строка Exec..., отвечающая за выключение клиента. В нее дописан скрипт, который выключает и компьютер.

Этот скрипт составлен с ошибкой: по логике, первая строка-название клиента- должна запускать этот клиент, а не останавливать. А вторая строка выключает компьютер. В данном случае получается, что Exec... завершает работу компьютера, затем (если путь к скрипту дописан, а не заменяет содержание строки) запускается скрипт, который снова запускает клиент и завершает работу компьютера.

По синтаксису, также, между командами должно присутствовать либо ";"-после завершения правильного или нет команды начинается выполнение второй команды, или же "&&"- вторая команда начинает выполнение только после успешного завершения предыдущей, чего нет в скрипте...

Попробуйте:
из скрипта убрать название клиента и проверить все при наличии в нем только shutdown -h now
или строку с Exec заменить на Exec=shutdown -h now и тоже поэксперементировать (хотя этот вариант странно выглядит..))).

О работе механизма команд в скриптах лучше погуглите в интернете по вопросу "объединение команд, выполнение нескольких команд...bash shell ", ибо тема обширная, хотя простая для понимания...А вот составление самих команд-это сложнее. Смотрите программирование в консоли линукса.


azmcrum
Сообщения: 85
Зарегистрирован: 12 авг 2015, 02:33

Выключение компьютера по закрытию приложения

#10

Сообщение azmcrum » 25 авг 2018, 22:14

Для halt, poweroff, reboot нужны права рута.
Без рута для систем на systemd есть команды:
systemctl poweroff – выключает систему
systemctl reboot – перезагружает систему

Ответить