Название: [РЕШЕНО] Программно выключить компьютер под пользователем в Linux Отправлено: Vladimir от Ноябрь 20, 2012, 15:13 Доброго дня! Собственно вопрос как это сделать программно (НЕ ИЗ-ПОД ROOT)?
Linux OpenSuse 11.4 Из консоли выключает так: Код: su root Возможно ли сделать программно выключение компьютера без ввода пароля пользователя, взять его как-либо из системы, либо ввести его вручную в интерфейсе настроек программы, скажем, и подставить его КАК-ТО при запросе пароля командной su.. Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: kuzulis от Ноябрь 20, 2012, 15:19 Добавить пользователя в группу power не? (в слуае если дистрибутив еще без systemd).
А так - поиск в гугле рулит! Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Fat-Zer от Ноябрь 20, 2012, 15:33 можно sudo настроить на выполнение некоторых команд без пароля...
Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Vladimir от Ноябрь 20, 2012, 16:01 Добавить пользователя в группу power не? (в слуае если дистрибутив еще без systemd). А так - поиск в гугле рулит! не знаю, что такое systemd, но группы power нет! Пробую писать при отладке Код: system("su root") Если вводить system("sudo shutdown -h now"), то на консоль выводит "no tty present and no askpass program specified".. Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Vladimir от Ноябрь 20, 2012, 16:02 можно sudo настроить на выполнение некоторых команд без пароля... А как это сделать в моем случае с выключением компьютера не подскажите? Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Alex Custov от Ноябрь 20, 2012, 21:27 Посмотри на xdg-su. Этой команды может не быть в некоторых дистрибутивах, так что распространять придётся вместе с программой.
Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: shame от Ноябрь 21, 2012, 10:43 Не мелите чушь. Все это делается через QDbus
Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Fat-Zer от Ноябрь 21, 2012, 11:55 А как это сделать в моем случае с выключением компьютера не подскажите? если кратко, то добавить строчку в /etc/sudoersALL ALL = NOPASSWD: (ALL) /sbin/shutdown перед этим хорошобы прочитать man 5 sudoers и понять, что оно означает, поставить конкретную группу или юзера итп... но опять же если надо из программы сделать и на десктопе, а не из шела, то лучше череш dbus послать сигнал кому-надо Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Alex Custov от Ноябрь 21, 2012, 14:12 Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: shame от Ноябрь 21, 2012, 19:03 например? org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Alex Custov от Ноябрь 21, 2012, 19:23 org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown для этого требуется HAL, от которого сейчас отказываются. У меня его нет, например. Причём ставить его только для возможности выключения - явно перебор. Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Igors от Ноябрь 21, 2012, 19:42 Владимир, а может надо "гибче"? Ответы показали что такой простой, очевидной возможности нету. А о кросс-платформенности здесь лучше не вспоминать. Это тоже полезно, значит надо перепланировать задачу и обойтись без этого. Ну да, хотелось бы, но ничего не попишешь. А "упираться рогом" здесь бесперспективно
Цитировать Не за то отец бил что играл, а за то что отыгрывался Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: shame от Ноябрь 21, 2012, 21:25 для этого требуется 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 Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Vladimir от Ноябрь 21, 2012, 21:46 Владимир, а может надо "гибче"? Ответы показали что такой простой, очевидной возможности нету. А о кросс-платформенности здесь лучше не вспоминать. Это тоже полезно, значит надо перепланировать задачу и обойтись без этого. Ну да, хотелось бы, но ничего не попишешь. А "упираться рогом" здесь бесперспективно Цитировать Не за то отец бил что играл, а за то что отыгрывался ну что касается кросс-платформенности, то думаю развезать под win и linux проблемы не составит (Q_OS_WIN - Q_OS_LINUX) и для каждой платформы написать свой код.. не под все дистрибутивы linux вариант с QDbus пойдет? пока планируется использовать программу только под OpenSUSE, надо попробовать, тем более раньше никогда не работал с QDbus.. а "перепланировать задачу" сложно будет, ибо такая возможность в программе должна быть железно! Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Vladimir от Ноябрь 21, 2012, 21:47 спасибо за ответы! буду пробовать..
Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Igors от Ноябрь 21, 2012, 22:10 ибо такая возможность в программе должна быть железно! Жизнь покажет :)Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: shame от Ноябрь 21, 2012, 22:28 Ну в любом случае не стоит колупать систему ради программы, если только вы не будете ее использовать только у себя ;)
Название: Re: Программно выключить компьютер под пользователем в Linux Отправлено: Vladimir от Ноябрь 20, 2014, 14:36 Давно не смотрел эту ветку, а тема, как оказывается, была активно просматриваемая. Ответ тогда нашелся через QDBus, может кому пригодится!
Код: .pro |