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

Název: Nastavení klávesy pro Hibernaci (uspání na disk)
Přispěvatel: 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:

Kód: [Vybrat]
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  :)
Název: Re:Nastavení klávesy pro Hibernaci (uspání na disk)
Přispěvatel: juwa2 01 Února 2018, 17:48:05
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:

Kód: [Vybrat]
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ř.
Kód: [Vybrat]
/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
Kód: [Vybrat]
sudo systemctl hibernate
a samozř. použít výjimku v sudoers
https://www.cyberciti.biz/faq/linux-unix-running-sudo-command-without-a-password/
Název: Re:Nastavení klávesy pro Hibernaci (uspání na disk)
Přispěvatel: Jrk 01 Února 2018, 19:28:03
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:
Kód: [Vybrat]
sudo visudoa upravíme soubor tak, že přidáme poslední řádek:
Kód: [Vybrat]
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:
Kód: [Vybrat]
Error org.freedesktop.DBus.Error.UnknownMethod: Žádná taková metoda „hibernate“ neexistujetakže jsem se pokusil možnost první - připadala mi schůdnější ;)
Název: Re:Nastavení klávesy pro Hibernaci (uspání na disk)
Přispěvatel: GdH 01 Února 2018, 20:21:39
Druhou možností je pro hibernaci použít příkaz který se bez "sudo" obejde, např.
Kód: [Vybrat]
/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
Kód: [Vybrat]
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):
Kód: [Vybrat]
dbus-send --system --print-reply --dest=org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager.Hibernate boolean:falseFunguje 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)
Název: Re:Nastavení klávesy pro Hibernaci (uspání na disk)
Přispěvatel: Jrk 01 Února 2018, 20:35:16
Super, funguje  :)

Kód: [Vybrat]
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é ;)
Název: Re:Nastavení klávesy pro Hibernaci (uspání na disk)
Přispěvatel: Ventero 01 Února 2018, 20:59:52
A jak by se timto zpusobem restartovala sluzba? Co by nahradilo
Kód: [Vybrat]
sudo service xxyy restart?
Název: Re:Nastavení klávesy pro Hibernaci (uspání na disk)
Přispěvatel: GdH 02 Února 2018, 12:43:33
A jak by se timto zpusobem restartovala sluzba? Co by nahradilo
Kód: [Vybrat]
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.