Поки перевіряється файлова система на моєму сервері, я вирішив написати коротку замітку про те, як автоматично перезапускати демон на під лінуксом.
Метод вкрай сокирний, але працює.
- Максимальний час простою - 1 хвилина. Тобто в гіршому випадку, демон буде завислий / відключений / etc протягом хвилини.
- Ви повинні знати команду, яка в разі роботи демона поверне який-небудь рядок, а якщо потрібен перезапуск - не поверне.
Я використовую цей метод для автоматичного перезапуску відвалюється winbind 'а й що минає в астрал 1С сервера під Linux.
Важливе зауваження! Перш ніж використовувати цей сокирний або якийсь інший прекрасний метод перезапуску демона, спробуйте зробити так, щоб перезапуску не було потрібно взагалі (це я для випадку, коли демона вибиває) - почитайте логи, погуглити і вирішите проблему в корені.
З теорією все, займемося практикою.
Метод, який я використовую, полягає в щохвилинну запуску скрипта, який перевіряє наявність демона і, якщо його немає, перезапускає службу.
Створюємо файл /usr/local/sbin/mydaemon.check (для winbind):
/ Usr / bin / wbinfo -u | grep -q v.shokov || /etc/init.d/winbind restart> / dev / null
Тут команда / usr / bin / wbinfo -u | grep -q v.shokov запитує в домені всіх користувачів, перевіряє - чи є там користувач v.shokov (вважаємо, що він є завжди) і, якщо повертається порожній рядок, то winbind перезапускается.
Можна зробити перевірку на існування процесу - / bin / ps -A | grep -q winbind або, наприклад, статус служби - /etc/init.d/winbind status | grep -q winbindd.
Важливо лише, щоб команда якомога менше грузила систему і, якщо служба потребує перезапуску, - повертала порожній рядок, а якщо не потребує - то повертала хоч щось.
Тепер додаємо завдання в / etc / crontab
І перезапускаємо cron. Власне, все.