Автобиография
Програми
Web Blog B
 
O Y A N   B O Y C H E
V Скинове & Fonts
Книга за Гости Игри
Лични Снимки Михаел Шумахер
Моите Приятели       Връзки
Меню
   
Инфо
 
Вашето IP:
 13.58.252.8
 
Дата и час:
24 Април 2024
05:37:32
 
Последна актуализация:
04 Януари 2024
 
Вие сте посетител №:
04.2024г. 2119
(2024г.) (0)

Посетители - ботове:
04.2024г. 2119
(2024г.) (11791)

 
 

Valid XHTML 1.0 Transitional

 
Новини
GShutdown и sudo
Как да спрем компютъра си в определено време при работа с Gnome, KDE или XFCE?!
Събота, 7 Февруари 2009
Дълго време си търсих графична програма, която да използвам за спирането на компютъра си в определено време. По-специално това, което търсих бе малка и семпла програма, която с едно, максимум две кликвания на мишката да поготви машината за спиране в определено от мен време. Така попаднах на 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 ~]$

За функционирането на скрипта са необходими няколкто предварителни условия и настройки:
  1. Инсталиран 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 ~]$

  2. Инсталирано (примерно 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...

Gshutdown може да бъде свален от официалния сайт - GShutdown или директно инсталиран от хранилищата на съответната Linux дистрибуция. Примерно за Fedora 10:
Цитат
[username@hostname ~]$ yum search gshutdown
Loaded plugins: refresh-packagekit
===================================================================== Matched: gshutdown =====================================================================
gshutdown.i386 : GShutDown is an advanced shut down utility for GNOME
[username@hostname ~]$



Веднага изпробвах GShutdown с опцията "Turn off the computer", но за мое учудване под Fedora 10 компютъра не се спря, а просто затвори текущата Gnome сесия. Затова използвах възможността за конфигуриране на програмата, като зададох точна команда за опцията "Turn off the computer" - "/usr/bin/sudo /sbin/poweroff" (вижте снимката).

Тествах и в този случай всичко премина точно - компютъра се загаси.

GShutdown + точка 2 описана по-горе решиха моя, и надявам се вашия, маловажен проблем.

Публикувано в Софтуер


<< Назад
© Боян Бойчев