Russian Qt Forum
Ноябрь 22, 2024, 15:57
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Компиляторы и платформы
>
Linux
>
[РЕШЕНО] Программно выключить компьютер под пользователем в Linux
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [РЕШЕНО] Программно выключить компьютер под пользователем в Linux (Прочитано 15421 раз)
Vladimir
Крякер
Offline
Сообщений: 305
[РЕШЕНО] Программно выключить компьютер под пользователем в Linux
«
:
Ноябрь 20, 2012, 15:13 »
Доброго дня! Собственно вопрос как это сделать программно (
НЕ ИЗ-ПОД ROOT
)?
Linux OpenSuse 11.4
Из консоли выключает так:
Код:
su root
Пароль: ***
shutdown -h now
Возможно ли сделать программно выключение компьютера без ввода пароля пользователя, взять его как-либо из системы, либо ввести его вручную в интерфейсе настроек программы, скажем, и подставить его КАК-ТО при запросе пароля командной su..
«
Последнее редактирование: Ноябрь 20, 2014, 14:38 от Vladimir
»
Записан
kuzulis
Джедай : наставник для всех
Offline
Сообщений: 2812
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #1 :
Ноябрь 20, 2012, 15:19 »
Добавить пользователя в группу power не? (в слуае если дистрибутив еще без systemd).
А так - поиск в гугле рулит!
Записан
ArchLinux x86_64 / Win10 64 bit
Fat-Zer
Гость
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #2 :
Ноябрь 20, 2012, 15:33 »
можно sudo настроить на выполнение некоторых команд без пароля...
Записан
Vladimir
Крякер
Offline
Сообщений: 305
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #3 :
Ноябрь 20, 2012, 16:01 »
Цитата: kuzulis от Ноябрь 20, 2012, 15:19
Добавить пользователя в группу power не? (в слуае если дистрибутив еще без systemd).
А так - поиск в гугле рулит!
не знаю, что такое systemd, но группы power нет!
Пробую писать при отладке
Код:
system("su root")
в дебаге вылазит слово "Пароль:", которые не понятно как ввести..
Если вводить system("sudo shutdown -h now"), то на консоль выводит "no tty present and no askpass program specified"..
Записан
Vladimir
Крякер
Offline
Сообщений: 305
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #4 :
Ноябрь 20, 2012, 16:02 »
Цитата: Fat-Zer от Ноябрь 20, 2012, 15:33
можно sudo настроить на выполнение некоторых команд без пароля...
А как это сделать в моем случае с выключением компьютера не подскажите?
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #5 :
Ноябрь 20, 2012, 21:27 »
Посмотри на xdg-su. Этой команды может не быть в некоторых дистрибутивах, так что распространять придётся вместе с программой.
Записан
shame
Гость
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #6 :
Ноябрь 21, 2012, 10:43 »
Не мелите чушь. Все это делается через QDbus
Записан
Fat-Zer
Гость
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #7 :
Ноябрь 21, 2012, 11:55 »
Цитата: Vladimir от Ноябрь 20, 2012, 16:02
А как это сделать в моем случае с выключением компьютера не подскажите?
если кратко, то добавить строчку в /etc/sudoers
ALL ALL = NOPASSWD: (ALL) /sbin/shutdown
перед этим хорошобы прочитать
man 5 sudoers
и понять, что оно означает, поставить конкретную группу или юзера итп...
но опять же если надо из программы сделать и на десктопе, а не из шела, то лучше череш dbus послать сигнал кому-надо
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #8 :
Ноябрь 21, 2012, 14:12 »
Цитата: shame от Ноябрь 21, 2012, 10:43
Не мелите чушь. Все это делается через QDbus
например?
Записан
shame
Гость
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #9 :
Ноябрь 21, 2012, 19:03 »
Цитата: Alex Custov от Ноябрь 21, 2012, 14:12
например?
org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #10 :
Ноябрь 21, 2012, 19:23 »
Цитата: shame от Ноябрь 21, 2012, 19:03
org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
для этого требуется HAL, от которого сейчас отказываются. У меня его нет, например. Причём ставить его только для возможности выключения - явно перебор.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #11 :
Ноябрь 21, 2012, 19:42 »
Владимир, а может надо "гибче"? Ответы показали что такой простой, очевидной возможности нету. А о кросс-платформенности здесь лучше не вспоминать. Это тоже полезно, значит надо перепланировать задачу и обойтись без этого. Ну да, хотелось бы, но ничего не попишешь. А "упираться рогом" здесь бесперспективно
Цитировать
Не за то отец бил что играл, а за то что отыгрывался
Записан
shame
Гость
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #12 :
Ноябрь 21, 2012, 21:25 »
Цитата: Alex Custov от Ноябрь 21, 2012, 19:23
для этого требуется HAL, от которого сейчас отказываются. У меня его нет, например. Причём ставить его только для возможности выключения - явно перебор.
я просто привел пример
вот еще org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
для гнома org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.RequestShutdown
для кед org.kde.ksmserver /KSMServer logout 0 2 2
«
Последнее редактирование: Ноябрь 21, 2012, 21:31 от shame
»
Записан
Vladimir
Крякер
Offline
Сообщений: 305
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #13 :
Ноябрь 21, 2012, 21:46 »
Цитата: Igors от Ноябрь 21, 2012, 19:42
Владимир, а может надо "гибче"? Ответы показали что такой простой, очевидной возможности нету. А о кросс-платформенности здесь лучше не вспоминать. Это тоже полезно, значит надо перепланировать задачу и обойтись без этого. Ну да, хотелось бы, но ничего не попишешь. А "упираться рогом" здесь бесперспективно
Цитировать
Не за то отец бил что играл, а за то что отыгрывался
ну что касается кросс-платформенности, то думаю развезать под win и linux проблемы не составит (Q_OS_WIN - Q_OS_LINUX) и для каждой платформы написать свой код.. не под все дистрибутивы linux вариант с QDbus пойдет? пока планируется использовать программу только под OpenSUSE, надо попробовать, тем более раньше никогда не работал с QDbus.. а "перепланировать задачу" сложно будет, ибо такая возможность в программе должна быть железно!
Записан
Vladimir
Крякер
Offline
Сообщений: 305
Re: Программно выключить компьютер под пользователем в Linux
«
Ответ #14 :
Ноябрь 21, 2012, 21:47 »
спасибо за ответы! буду пробовать..
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...