Дълго време си търсих графична програма, която да използвам за спирането на компютъра си в определено време. По-специално това, което търсих бе малка и семпла програма, която с едно, максимум две кликвания на мишката да поготви машината за спиране в определено от мен време. Така попаднах на GShutdown.
GShutdown е малка, но функционална програма, която ви позволява да изготвите график за изключване или рестартиране на компютъра ви, или да прекрати текущата работна сесия.
GShutdown е безплатен софтуер разпространяващ се в рамките на GNU GPL лиценза. Графичният потребителски интерфейс на програмата е построен на базата на многоплатформената библиотека GTK+2.
Но да се върнем малко назад в моето близко минало. Доскро използвах просто решение с помощта на "at", "sudo" и "poweroff". Ето и краткият bash скрипт, който спираше компютъра ми след 30 минути от момента на стартирането му:
Примерен код |
[username@hostname ~]$ cat poweroff_30min.sh #!/bin/bash
echo "/usr/bin/sudo /sbin/poweroff" | /usr/bin/at now + 30 minutes [username@hostname ~]$ |
За функционирането на скрипта са необходими няколкто предварителни условия и настройки:
- Инсталиран At и работеш atd демон - примерно at-3.1.10-26.fc10.i386 пакет (Fedora 10) и проверка за atd демона:
Примерен код |
[username@hostname ~]$ ps -ef | grep atd | grep -v grep root 2753 1 0 10:20 ? 00:00:00 /usr/sbin/atd [username@hostname ~]$
[username@hostname ~]$ chkconfig --list | grep atd atd 0:off 1:off 2:off 3:on 4:on 5:on 6:off [username@hostname ~]$ |
- Инсталирано (примерно sudo-1.6.9p17-5.fc10.i386) и конфигурирано sudo (с помощта на visudo), където "username" трябва да бъде заместено с името на вашия потребител. Също така намерете и коментирайте "Defaults requiretty" реда:
Примерен код |
[root@hostname ~]# grep 'poweroff' /etc/sudoers ## Allow username to run poweroff command as root on localhost without password username ALL=(root) NOPASSWD: /sbin/poweroff [root@hostname ~]#
[root@hostname ~]# grep 'requiretty' /etc/sudoers #Defaults requiretty [root@hostname ~]# |
Този начин разбира се работи ефективно, но не е достатъчно гъвкав, тъй като при него е твърдо записано "now + 30 minutes", т.е. компютъра спира след 30 минути от момента на стартиране на скрипта. Това разбира се може да се промени, като се добави времето като аргумент към скрипта, но тогава скрипта ще бъде ефективен само от терминален прозорец. За решаването на този проблем идва на помощ GShutdown...