Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
int main(int argc, char *argv[])
{
int fd;
unsigned char off = REQ_OFF;
unsigned char pause = PAUSE;
if (argc < 2) {
fprintf(stderr, "Usage: poweroff <device> [time(sec)] ");
exit(1);
}
/* Open monitor device. */
if ((fd = open(argv[1], O_RDWR | O_NDELAY)) < 0) {
exit(1);
}
if (argc > 2) {
pause = (unsigned char)atoi(argv[2]);
}
write(fd, &off, 1);
sleep(1/5);
write(fd, &pause, 1);
close(fd);
return 0;
}
либо:
# gcc poweroffups.с -o poweroffups
Готовый файл лучше записать в директорию /sbin, при необходимых требованиях безопасности, задав ему соответствующие атрибуты. Для его запуска ему надо передать два параметра: первый – порт, к которому подключен ИБП и на который надо посылать сигнал, а второй – количество секунд, через которое следует выключить ИБП. Если число секунд не задано, то выключение происходит через 15 секунд.
Чтобы выключение ИБП происходило при выключении компьютера, необходимо подправить файл /etc/rc.d/init.d/halt, дописав туда следующие строчки в самом конце перед eval «$command $HALTARGS» или «eval $command –i –d –p»:
# Добавить в конец файла перед строкой
# "eval $command $HALTARGS" или "eval
$command -i -d -p"
# Is this a powerfail situation?
if [ -f /etc/turnUPSoff ]; then
echo "Turning off UPS. Bye."
/sbin/poweroffups /dev/ttyS0 5
# exit 1
fi
Проверяется, установлен ли флаг на выключение, то есть имеется ли файл /etc/turnUPSoff. Далее при его наличии запускается программа, которая передает ИБП параметры на выключение, соответственно, /dev/ttyS0 также означает, что ИБП подключен к COM1, а 5 означает, что систему надо выключить через 5 секунд.