0.8.0b не запускается основной цикл

Проблемы/вопросы, связанные с запуском под различными платформами и конфигурациями.

Модератор: immortal

seven
Сообщения: 22
Зарегистрирован: Пн июн 03, 2013 9:49 pm
Благодарил (а): 1 раз
Поблагодарили: 0

Re: 0.8.0b не запускается основной цикл

Сообщение seven » Сб янв 10, 2015 12:30 am

Тоже за сегодня 2 раза эта проблема вылазила, помогает только перезапуск МД. При этом загрузка проца 100%. Вин 7 х64.
Аватара пользователя
Wagan
Сообщения: 71
Зарегистрирован: Пн янв 12, 2015 12:28 pm
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение Wagan » Пн фев 02, 2015 9:08 pm

После успешной установки MDM на платформу Pegatron (Nettop) долго не хотел беспокоить своими вопросами, но столкнувшись с чудесами, решил-таки обратиться к специалистам.

Проблема: падают циклы

Имеем:
wagan@debian:/var/www$ uname -a
Linux debian 3.2.0-4-686-pae #1 SMP Debian 3.2.65-1+deb7u1 i686 GNU/Linux

Система установлена в /var/www

/etc/crontab
СпойлерПоказать
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
@reboot www-data /usr/bin/php /var/www/cycle.php
@reboot www-data vlc -I http
Один из текущих логов /var/www/debmes/2015-02-02.log
СпойлерПоказать
09:53:50 DEBUG [root]: Starting ./scripts/cycle_execs.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_zwave.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_ping.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_main.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_snmp.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_X101_skype.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_modbus.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_bluetooth.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_connect.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_onewire_starred.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_rss.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_webvars.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_onewire.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_scheduler.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_states.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_skype.php ... (at /var/www/lib/general.class.php:417)
09:53:50 DEBUG [root]: Starting ./scripts/cycle_watchfolders.php ... (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_zwave.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: DISPLAY=:101 /usr/bin/php ./scripts/cycle_X101_skype.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_onewire_starred.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_snmp.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_bluetooth.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_connect.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_skype.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_onewire.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
09:53:51 DEBUG [root]: Closing thread: /usr/bin/php -q ./scripts/cycle_modbus.php --params "a:0:{}" (at /var/www/lib/general.class.php:417)
10:00:00 DEBUG [root]: Executing (exclusive): mplayer /var/www/sounds/dingdong.mp3 (at /var/www/lib/general.class.php:417)
10:00:03 DEBUG [root]: Executing (exclusive): cscript /var/www/rc/sapi.js 10 часов (at /var/www/lib/general.class.php:417)
11:00:00 DEBUG [root]: Executing (exclusive): mplayer /var/www/sounds/dingdong.mp3 (at /var/www/lib/general.class.php:417)
11:00:03 DEBUG [root]: Executing (exclusive): cscript /var/www/rc/sapi.js 11 часов (at /var/www/lib/general.class.php:417)
Конфиг /var/www/config.php
СпойлерПоказать
<?php
/**
* Project Config
*
* @package MajorDoMo
* @author Serge Dzheigalo <jey@tut.by> http://smartliving.ru/
* @version 1.1
*/

Define('DB_HOST', '127.0.0.1');
Define('DB_NAME', 'db_terminal');
Define('DB_USER', 'mdm');
Define('DB_PASSWORD', '123');

Define('DIR_TEMPLATES', "./templates/");
Define('DIR_MODULES', "./modules/");
Define('DEBUG_MODE', 1);
Define('UPDATES_REPOSITORY_NAME', 'smarthome');

Define('PROJECT_TITLE', 'MajordomoSL');
Define('PROJECT_BUGTRACK', "bugtrack@smartliving.ru");

if ($_ENV["COMPUTERNAME"]) {
Define('COMPUTER_NAME', strtolower($_ENV["COMPUTERNAME"]));
} else {
Define('COMPUTER_NAME', 'mycomp'); // Your computer name (optional)
}

Define('DOC_ROOT', dirname(__FILE__)); // Your htdocs location (should be detected automatically)

Define('SERVER_ROOT', '/var/www/majordomo');
Define('PATH_TO_PHP', '/usr/bin/php ');
Define('PATH_TO_MYSQLDUMP', "/usr/bin/mysqldump");

if ($_ENV["S2G_BASE_URL"]) {
Define('BASE_URL', $_ENV["S2G_BASE_URL"]);
} else {
Define('BASE_URL', 'http://127.0.0.1:80'); // Your base URL:port (!!!)
}

Define('ROOT', DOC_ROOT."/");
Define('ROOTHTML', "/");
Define('PROJECT_DOMAIN', $_SERVER['SERVER_NAME']);

//Define('ONEWIRE_SERVER', 'tcp://localhost:8234'); // 1-wire OWFS server

//Define('HOME_NETWORK', '192.168.0.*'); // home network (optional)
//Define('EXT_ACCESS_USERNAME', 'user'); // access details for external network (internet)
//Define('EXT_ACCESS_PASSWORD', 'password');

?>
Падение происходит странным образом, запускаю из консоли или через вэб, запускаются циклы и все ок, закрываю сессию, из которой запускал, циклы падают, когда захожу на вэб-интерфейс. На экране вижу информацию, что пару часов система работала, отмечая смену часа, потом тишина.

Еще странно, что система постоянно показывает, что нет Интернета, хотя он есть.
Последний раз редактировалось Wagan Вт фев 03, 2015 8:14 am, всего редактировалось 1 раз.
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Аватара пользователя
Wagan
Сообщения: 71
Зарегистрирован: Пн янв 12, 2015 12:28 pm
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение Wagan » Пн фев 02, 2015 9:09 pm

Только сейчас заметил в конфиге

Код: Выделить всё

Define('SERVER_ROOT', '/var/www/majordomo'); 
, видимо, должно быть /var/www, или это не имеет значения?
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Аватара пользователя
Wagan
Сообщения: 71
Зарегистрирован: Пн янв 12, 2015 12:28 pm
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение Wagan » Пн фев 02, 2015 9:16 pm

Где посмотреть этот лог в виде файла, если запускаешь не из консоли или без указания в консоли записи в лог?
mdm.jpg
mdm.jpg (99.28 КБ) 15469 просмотров
Здесь видно, что запускал в 9:53, затем пару часов явно система регистрировала смену часа, значит циклы работали, потом тишина. Зашел на вэб-интерфейс в 20:00 и здесь увидел, что система упала, но почему об этом не было информации до того?
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение LutsenkoDenis » Пн фев 02, 2015 9:24 pm

Wagan писал(а):Только сейчас заметил в конфиге

Код: Выделить всё

Define('SERVER_ROOT', '/var/www/majordomo'); 
, видимо, должно быть /var/www, или это не имеет значения?
Это зависит от конфига в апаче. У меня настроено на /var/www/mdm, на тестовой машине на /var/www.

То, что скрипты перестают работать после закрытия сессии в консоли, тоже логично. Для того чтобы этого не было, можно воспользоваться командой screen
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Аватара пользователя
Wagan
Сообщения: 71
Зарегистрирован: Пн янв 12, 2015 12:28 pm
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение Wagan » Пн фев 02, 2015 9:40 pm

ОК, иначе задам вопрос :-)
После того, как система перезагрузится, нужно что-то делать руками или MDM запустится самостоятельно?

И еще, что конкретно посмотреть в /etc/apache2/apache2.conf?
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение LutsenkoDenis » Пн фев 02, 2015 10:22 pm

Wagan писал(а):ОК, иначе задам вопрос :-)
После того, как система перезагрузится, нужно что-то делать руками или MDM запустится самостоятельно?

И еще, что конкретно посмотреть в /etc/apache2/apache2.conf?
1. Согласно команде в кронтабе

Код: Выделить всё

@reboot www-data /usr/bin/php /var/www/cycle.php
MDM будет запускаться самостоятельно во время запуска системы. Если MDM по какой-то причине упадет, то для того чтобы его запустить нужно будет перезапускать систему. Либо делать можно сделать так как написано тут.

2. config.php(MDM). Вот этот кусок кода отвечает за то как будет php оповещать об ошибках и прочих событиях. Это как раз про "PHP Notice"
СпойлерПоказать

Код: Выделить всё

define('ENVIRONMENT', 'prod');

switch (ENVIRONMENT) 
{
   case 'dev':
      error_reporting(-1);
      ini_set('display_errors', 1);
      break;

   case 'prod':
      error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED ^ E_STRICT);
      ini_set('display_errors', 0);
      break;

   default:
      header('HTTP/1.1 503 Service Unavailable.', TRUE, 503);
      exit('The application env is incorrect');
} 
3. Конфиг апача. Если MDM запускается и его видно в браузере, то смотреть конфиг апача не нужно. Необходимость ковыряться в его конфигах появится только тогда, когда захочется чтобы апач слушал несколько портов, или чтоб MDM находился в папке, отличной от /var/www или если захочется настроить несколько сайтов.

4. В папке DebMes логи можно посмотреть, может будет запись что вызывалось перед падением.
За это сообщение автора LutsenkoDenis поблагодарил:
Wagan (Вт фев 03, 2015 8:08 am)
Рейтинг: 1.16%
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Аватара пользователя
Wagan
Сообщения: 71
Зарегистрирован: Пн янв 12, 2015 12:28 pm
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение Wagan » Вт фев 03, 2015 8:12 am

Денис, большое спасибо за пояснения.

1. Хороший наверное скрипт, но почему его не включат в дистрибутив? Для чайника все это сложно и по форуму нужно много скакать, чтобы собрать все так воедино. Ведь падение циклов - это не случайность, а системная проблема, заложенная изначально, если не предпринять никаких действий.
4. В debmes ничего не появляется, поэтому и причину пока не могу выяснить.

Еще странно, что постоянно пишет об отсутствии интернета. Это ведь не должно быть причиной падения? Видимо, какой-то цикл опроса не запцскается?
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
Аватара пользователя
Wagan
Сообщения: 71
Зарегистрирован: Пн янв 12, 2015 12:28 pm
Откуда: Москва
Благодарил (а): 5 раз
Поблагодарили: 1 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение Wagan » Вт фев 03, 2015 8:20 am

2. Указанного куска в моем config.php вообще нет. Я должен был как-то сам догадаться или где-то на форуме найти? Я все больше и больше понимаю, что система точно не для интеграторов, а пока только для разработчиков
С уважением,
Ваган Саруханов
Проекты|Форум|Facebook|Linkedin
LutsenkoDenis
Сообщения: 521
Зарегистрирован: Вс апр 07, 2013 9:30 pm
Откуда: Moscow
Благодарил (а): 2 раза
Поблагодарили: 58 раз
Контактная информация:

Re: 0.8.0b не запускается основной цикл

Сообщение LutsenkoDenis » Вт фев 03, 2015 10:29 am

Сборкой дистрибутива занимается Сергей. Дистрибутив отличается немного от исходников на гитхабе.
Дистрибутив, на сколько я понимаю, только для винды и туда этот скрипт вообще никак не подходит.

Установка под линукс была описана на формуме в отдельной ветке и на сайте в вики тоже вроде присутствует.

Да, многие вещи к коде написаны не совсем так как это должно быть. Но на исправление нужно потратить время, которое нужно еще где-то найти. Если это какой-то критичный косяк, то его правят быстро, если нет то по мере сил и возможностей.

Про циклы могу сказать следующее:
1. Отключить все циклы
2. Запустить один цикл.
3. Посмотреть не отвалился ли он.
4. Если цикл отвалился, то искать место на котором он отвалился. Если все ок и ничего не упало, то продолжить со второго пункта.

Config.php. Честно говоря, меня немного смутил этот config.php, так как когда я его делал из файла config.php.sample, то там этот кусок кода был.

p.s. MDM я развернул на Debian Gnu/Linux. Исходники брал с гитхаба. В качестве железа? на котором все крутится, выступает HP Microserver Gen8. Так вот... пока я не заставил замолчать алису, у меня mdm падал из-за того что на данном серваке нет звуковухи.
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Ответить