Čas od času si sestavuji offline mapu ČR do telefonu a protože mám v počítači jen 4 GB RAM, musím celou operaci provádět nad pomalým notebookovým diskem. Celá záležitost pak trvá ke třem hodinám a je na snadě ji spustit po půlnoci, kdy mám navíc zrychlenou přípojku do internetu, pro stažení téměř 300 MB zdrojového souboru. Na nedávno rozjetém Openwrt je mimo jiné i CRON, který jsem původně využíval k vypínání rádií, nicméně lze přes něho probudit notebook po síti. Až se ten zapne, jeho CRON zase spustí skript na sestavení mé offline mapy. Ale co s těmi hodinami, kdy počítač běží na volnoběh. Nalezl jsem ideální příkaz na uspání, který nepožadoval práva roota:
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Ten fungoval v dobách, kdy jsem skript spouštěl ručně z příkazové řádky, během chvíle, kdy jsem na počítači nepotřeboval pracovat. Pokud ten samý skript spustím přes CRON, nic se nestane. Na internetu jsem našel několik důvodů, proč tomu tak je. Nejsou podstatné, neboť ani jeden příklad, který měl funkčnost vrátit nakonec nefungoval. Nezbývá než šikovný příkaz nahradit ve skriptu příkazem:
sudo /usr/sbin/pm-suspend
a do /etc/sudoers
, možno změnit též příkazem sudo visudo
přidat následující:
yourusername pchostname=NOPASSWD:/usr/sbin/pm-suspend
to by mělo dostatečně omezit takto vytvořenou bezpečnostní mezeru (jak vznosný název).