Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
/bin/sync
# Проверяем, не запущена ли у нас программа shutdown, например, на выключение через сутки,
# если запущена, то вычисляем ее PID и завершаем ее. Вместо нее будет висеть экземпляр
# на завершение через 10 минут. В случае последующего возникновения питания завершенный
# экземпляр shutdown на выключение системы восcтановлен не будет, и система через сутки не выключится.
# Необходимо это учитывать дополнительно.
PID=`ps auxw | grep "shutdown" | grep -v grep | awk '{print $2}'`
if [ "$PID" != "" ]; then kill -9 $PID
fi
# Создаем файл, служащий флагом выключения ИБП, в него пишем дату в формате RFC, чтобы потом было
# удобнее понять, когда был создан файл и пропало напряжение. В принципе в файл можно ничего не писать,
# так как можно просто посмотреть время его создания.
date -R>/etc/turnUPSoff
# Запускаем команду на выключение системы прямо сейчас
/sbin/shutdown -r now "UPS batteries low. IMMEDIATE SHUTDOWN."
# Если успеваем, то посылаем сообщение администратору о том, что идет экстренное выключение, возможно,
# разумнее разместить отсылку сообщения о выключении перед командой на выключение, однако
# если батарея работает на последнем издыхании, то может этого не случиться, а компьютер не успеет
# выключиться правильно, что может привести к большим сбоям и потерям данных.
/sbin/pager/power_failnow
Этим файлам следует придать атрибут запускаемости:
# chmod +x /etc/powerfail
# chmod +x /etc/powerokay
# chmod +x /etc/powerfailnow
Также в целях безопасности можно изменить права на доступ, устанавливаемые по умолчанию.
При выключении питания разумно выключить и сам ИБП, чтобы он не работал вхолостую (на ИБП без управления такое сделать сложно). Для этого необходимо скомпилировать файл poweroffups.c (Примечание: изначально файл назывался poweroff.c, но чтобы не возникало конфликтов, так как запускаемый файл poweroff уже есть, то я его переименовал.)
/* poweroffups program for UPS Powercom King Pro.
(c) Fedor Lizunkov 2:5020/960@Fidonet
26 May 2000 */
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/fcntl.h>
#include <stdio.h>
#include <unistd.h>
#define PAUSE 15
#define REQ_OFF 0xbc