Portál AbcLinuxu, 14. května 2025 01:34
Zdravim,
Vas problem neriesim vo svojej podstate, ale ako docasne riesenie mozte pouzit aj toto, malo by to fungovat:
#! /bin/bash # # Treba upravit /etc/sudoers , aby bezny uzivatel mal prava na vypnutie systemu # a to pridanim nasledujuceho riadku do /etc/sudoers : # >>>>>>>> Editor na upravu /etc/sudoers pouzi vyhradne visudo !!! <<<<<<<< # # uzivatel localhost= NOPASSWD: /sbin/shutdown # # Skript treba nastavit, aby sa spustal spolu okennym manazerom alebo grafickym prostredim. # Je nutne mat nainstalovane zenity, ak sa nenahradi inym sposobom zobrazenia hlaseni. # Urcite je aj jednoduchsie riesenie, pohodlnejsie, predsa nejakym sposobom vypne system # aj demon pre spravu napajanie ... # WARN_FROM=10 # Horna hranica hodnoty stavu baterie v percentach pre prve upozornenie. WARN_TO=5 # Dolna hranica hodnoty stavu baterie v percentach, # ktora je vsak hodnotou uz pre hlasenie pre kriticky stav baterie # a pokus o vypnutie systemu, ak to uzivatel povoli. CRITICAL_VALUE=$WARN_TO # Urcuje hodnota $WARN_TO. SLEEP_TIME=60 # Zmen pre frekvenciu kontroly stavu napajania v sekundach while true do if ! ( acpi -a | grep 'on-line' &>/dev/null ) then CURRENT_BAT="$(acpi -b | cut -d ' ' -f 4 | sed 's/%,//' )" if [[ $CURRENT_BAT -le $WARN_FROM && $CURRENT_BAT -gt $WARN_TO ]] then zenity --info --text "Bateria je nabita na $CURRENT_BAT %.\n\ Ukonci vsetky cinnosti alebo sa pripoj k sieti." sleep "$SLEEP_TIME" elif [[ $CURRENT_BAT -le $CRITICAL_VALUE ]] then zenity --question --text "Bateria je nabita na $CURRENT_BAT %.\n\ Stav je kriticky a preto sa system vypne.\nSuhlasis ?" if [[ $? -eq 0 ]] then sudo shutdown -h now else sleep "$SLEEP_TIME" fi else sleep "$SLEEP_TIME" fi else sleep "$SLEEP_TIME" fi done
#! /bin/bash # # Treba upravit /etc/sudoers , aby bezny uzivatel mal prava na vypnutie systemu # a to pridanim nasledujuceho riadku do /etc/sudoers : # >>>>>>>> Editor na upravu /etc/sudoers pouzi vyhradne visudo !!! <<<<<<<< # # uzivatel localhost= NOPASSWD: /sbin/shutdown # # Skript treba nastavit, aby sa spustal spolu okennym manazerom alebo grafickym prostredim. # Je nutne mat nainstalovane zenity, ak sa nenahradi inym sposobom zobrazenia hlaseni. # Urcite je aj jednoduchsie riesenie, pohodlnejsie, predsa nejakym sposobom vypne system # aj demon pre spravu napajanie ... # CRITICAL_VALUE=3 # Stav baterie v percentach, kedy sa vypise prvy raz # ziadost o povolenie vypnutia systemu. SLEEP_TIME=60 # Zmen pre frekvenciu kontroly stavu napajania v sekundach. while true do if ! ( acpi -a | grep 'on-line' &>/dev/null ) then CURRENT_BAT="$(acpi -b | cut -d ' ' -f 4 | sed 's/%,//' )" if [[ $CURRENT_BAT -le $CRITICAL_VALUE ]] then zenity --question --text "Bateria je nabita na $CURRENT_BAT %.\n\ Stav je kriticky a preto sa system vypne.\nSuhlasis ?" if [[ $? -eq 0 ]] then sudo shutdown -h now else sleep "$SLEEP_TIME" fi else sleep "$SLEEP_TIME" fi else sleep "$SLEEP_TIME" fi doneMimochodom, ako si sam pisal, pouzivas gnome, takze zenity je dostupne, netreba zrejme nic instalovat. ;)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.