Напильник для Tiny Tiny RSS
Как я недавно писал тут, после переезда на VDS’ку на сервере из-за недостатка памяти стала отваливаться сессия screen’а, в которой крутится демон опроса и наполнения БД новостей Tiny Tiny RSS. Для контроля того, что screen-сессия и процесс демона опроса и агрегирования новостей запущены, я написал скриптик на похапе, который опрашивает состояние этих процессов и отображает на WEB-странице. Показать
Возможны 22 вариантов:
- Скрин запущен, демон запущен: Показать
- Скрин запущен, демон выпал: Показать
- Скрин отвалился, демон вместе с ним: Показать
- Четвёртый вариант я не привожу, так как демона не в скрине я никогда не запускаю.
Однако мне достаточно быстро надоело открывать новую вкладку со страницей статистики каждый раз, когда у меня возникало подозрение о том, что скрин/демон отвалился. Поэтому я интегрировал индикаторы работы прямо на страницу Tiny Tiny RSS.
Ищу две картинки индикаторов ON и OFF, создаю файл скрипта опроса (допустим, readerstates.php) в том каталоге, где развёрнут TT RSS, с таким содержимым:
<?php $screen=exec("ps aux | grep -e 'SCREEN -dmS reade[r]'"); $daemon=exec("ps aux | grep -e 'php <путь к скрипту демона>/update_daemon2.ph[p]'"); $scrn_t=$dmn_t='не запущен'; $scrn=$dmn='off';if($screen){$scrn='on';$scrn_t='запущен';} if($daemon){$dmn='on';$dmn_t='запущен';}?> <img src='/... путь к картинке .../<?php echo$dmn;?>.png' title='Демон <?php echo$dmn_t;?>' /> <img src='/... путь к картинке .../<?php echo$scrn;?>.png' title='SCREEN <?php echo$scrn_t;?>' />
Затем прописываю require в файле index.php:
<?php foreach (PluginHost::getInstance()->get_hooks(PluginHost::HOOK_TOOLBAR_BUTTON) as $p) { echo $p->hook_toolbar_button(); } require_once "readerstates.php"; ?>
После этого все вышеописанные ситуации выглядят у меня на странице так:
- Скрин запущен, демон работает: Показать
- Скрин запущен, демон нет: Показать
- Скрин отвалился, демон тоже: Показать