Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Pracovní prostředí => Téma založeno: Jrk 01 Února 2018, 17:20:31
-
Moje krásná, nová klávesnice disponuje tlačítkem, které bych chtěl použít pro Hibernaci - uspání na disk. Bohužel se mi to nedaří - zkoušel jsem nastavit Klávesovou zkratku s příkazem:
sudo pm-hibernate
Toto ale nebylo úspěšné. Prosím mohl by mi někdo poradit, jak na to? Za odpovědi předem děkuji :)
-
Moje krásná, nová klávesnice disponuje tlačítkem, které bych chtěl použít pro Hibernaci - uspání na disk. Bohužel se mi to nedaří - zkoušel jsem nastavit Klávesovou zkratku s příkazem:
sudo pm-hibernate
Toto ale nebylo úspěšné. Prosím mohl by mi někdo poradit, jak na to? Za odpovědi předem děkui :)
Pokud obsahuje příkaz "sudo", musel bys přidat výjimku do sudoers, aby fungoval příkaz bez hesla. Jinak se příkaz neprovede, ale to už jsi zjistil sám....
-------------------------
Druhou možností je pro hibernaci použít příkaz který se bez "sudo" obejde, např.
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Tento příkaz však funguje pouze pro U14.10 a nižší. Vyšší verze používají místo upstart systemd, takže je nutno použít příkaz
sudo systemctl hibernate
a samozř. použít výjimku v sudoers
https://www.cyberciti.biz/faq/linux-unix-running-sudo-command-without-a-password/
-
Super, děkuji, vypadá že funguje - 1. způsob :)
OPRAVA! Nefunguje - ale ještě se podívám, kde jsem udělal chybu - chvíli to fungovalo :-[
Zkusím podrobněji popsat, kdyby měl někdo zmatek v návodu. V terminálu zadáme:
sudo visudo
a upravíme soubor tak, že přidáme poslední řádek:
jirka ALL = NOPASSWD: /usr/share/bash-completion/completions/pm-hibernate
...jirka je jméno uživatele, který bude mít právo užít příkaz "pm-hibernate" spustit bez toho, aniž by zadával heslo pro "sudo". Soubor uložíme CTRL+O a ENTER a ukončíme editaci CTRL+X.
A mělo by fungovat uspání na disk pomocí stisku klávesy k tomu určené - ovšem když si ji nastavíme v Klávesových zkratkách ;)
Závěrem bych chtěl poděkovat za bleskurychlou a správnou odpověď, kterou jsem pochopil :)
P.S.: druhá možnost mi hned nefungovala - odpověď terminálu:
Error org.freedesktop.DBus.Error.UnknownMethod: Žádná taková metoda „hibernate“ neexistuje
takže jsem se pokusil možnost první - připadala mi schůdnější ;)
-
Druhou možností je pro hibernaci použít příkaz který se bez "sudo" obejde, např.
/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Tento příkaz však funguje pouze pro U14.10 a nižší. Vyšší verze používají místo upstart systemd, takže je nutno použít příkaz
sudo systemctl hibernate
a samozř. použít výjimku v sudoers
https://www.cyberciti.biz/faq/linux-unix-running-sudo-command-without-a-password/ (https://www.cyberciti.biz/faq/linux-unix-running-sudo-command-without-a-password/)
Je pravdou, že se již pár let využívá systemd, konkrétně systemd-logind. Proto je třeba požadavek poslat tam, kde bude vyslyšen (funguje přinejmenším do Ubuntu 16.04):
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.Hibernate boolean:false
Funguje samozřejmě také bez sudo.
Podobně další akce, viz zde. (http://gdhnotes.blogspot.cz/2013/10/systemd-logind-nahrazuje-consolekit-upower-ubuntu-13.10.html)
-
Super, funguje :)
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.Hibernate boolean:false
Děkuji moc - snadné a rychlé ;)
-
A jak by se timto zpusobem restartovala sluzba? Co by nahradilo
sudo service xxyy restart
?
-
A jak by se timto zpusobem restartovala sluzba? Co by nahradilo sudo service xxyy restart
?
https://www.freedesktop.org/wiki/Software/systemd/dbus/
Sice to lze, nicméně toto již pochopitelně nebude možné bez práv. DBus je meziaplikační komunikační sběrnice, nikoliv způsob, jak obcházet sudo.