0.8.0b не запускается основной цикл
Модератор: immortal
Re: 0.8.0b не запускается основной цикл
Тоже за сегодня 2 раза эта проблема вылазила, помогает только перезапуск МД. При этом загрузка проца 100%. Вин 7 х64.
- Wagan
- Сообщения: 71
- Зарегистрирован: Пн янв 12, 2015 12:28 pm
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
После успешной установки 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
Один из текущих логов /var/www/debmes/2015-02-02.log
Конфиг /var/www/config.php
Падение происходит странным образом, запускаю из консоли или через вэб, запускаются циклы и все ок, закрываю сессию, из которой запускал, циклы падают, когда захожу на вэб-интерфейс. На экране вижу информацию, что пару часов система работала, отмечая смену часа, потом тишина.
Еще странно, что система постоянно показывает, что нет Интернета, хотя он есть.
Проблема: падают циклы
Имеем:
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
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
СпойлерПоказать
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)
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)
СпойлерПоказать
<?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');
?>
/**
* 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 раз.
- Wagan
- Сообщения: 71
- Зарегистрирован: Пн янв 12, 2015 12:28 pm
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
Только сейчас заметил в конфиге , видимо, должно быть /var/www, или это не имеет значения?
Код: Выделить всё
Define('SERVER_ROOT', '/var/www/majordomo');
- Wagan
- Сообщения: 71
- Зарегистрирован: Пн янв 12, 2015 12:28 pm
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
Где посмотреть этот лог в виде файла, если запускаешь не из консоли или без указания в консоли записи в лог?
Здесь видно, что запускал в 9:53, затем пару часов явно система регистрировала смену часа, значит циклы работали, потом тишина. Зашел на вэб-интерфейс в 20:00 и здесь увидел, что система упала, но почему об этом не было информации до того?-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
Это зависит от конфига в апаче. У меня настроено на /var/www/mdm, на тестовой машине на /var/www.Wagan писал(а):Только сейчас заметил в конфиге, видимо, должно быть /var/www, или это не имеет значения?Код: Выделить всё
Define('SERVER_ROOT', '/var/www/majordomo');
То, что скрипты перестают работать после закрытия сессии в консоли, тоже логично. Для того чтобы этого не было, можно воспользоваться командой screen
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
- Wagan
- Сообщения: 71
- Зарегистрирован: Пн янв 12, 2015 12:28 pm
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
ОК, иначе задам вопрос 
После того, как система перезагрузится, нужно что-то делать руками или MDM запустится самостоятельно?
И еще, что конкретно посмотреть в /etc/apache2/apache2.conf?

После того, как система перезагрузится, нужно что-то делать руками или MDM запустится самостоятельно?
И еще, что конкретно посмотреть в /etc/apache2/apache2.conf?
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
1. Согласно команде в кронтабеWagan писал(а):ОК, иначе задам вопрос
После того, как система перезагрузится, нужно что-то делать руками или MDM запустится самостоятельно?
И еще, что конкретно посмотреть в /etc/apache2/apache2.conf?
Код: Выделить всё
@reboot www-data /usr/bin/php /var/www/cycle.php
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');
}
4. В папке DebMes логи можно посмотреть, может будет запись что вызывалось перед падением.
- За это сообщение автора LutsenkoDenis поблагодарил:
- Wagan (Вт фев 03, 2015 8:08 am)
- Рейтинг: 1.16%
________________________________________________________
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch
- Wagan
- Сообщения: 71
- Зарегистрирован: Пн янв 12, 2015 12:28 pm
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
Денис, большое спасибо за пояснения.
1. Хороший наверное скрипт, но почему его не включат в дистрибутив? Для чайника все это сложно и по форуму нужно много скакать, чтобы собрать все так воедино. Ведь падение циклов - это не случайность, а системная проблема, заложенная изначально, если не предпринять никаких действий.
4. В debmes ничего не появляется, поэтому и причину пока не могу выяснить.
Еще странно, что постоянно пишет об отсутствии интернета. Это ведь не должно быть причиной падения? Видимо, какой-то цикл опроса не запцскается?
1. Хороший наверное скрипт, но почему его не включат в дистрибутив? Для чайника все это сложно и по форуму нужно много скакать, чтобы собрать все так воедино. Ведь падение циклов - это не случайность, а системная проблема, заложенная изначально, если не предпринять никаких действий.
4. В debmes ничего не появляется, поэтому и причину пока не могу выяснить.
Еще странно, что постоянно пишет об отсутствии интернета. Это ведь не должно быть причиной падения? Видимо, какой-то цикл опроса не запцскается?
- Wagan
- Сообщения: 71
- Зарегистрирован: Пн янв 12, 2015 12:28 pm
- Откуда: Москва
- Благодарил (а): 5 раз
- Поблагодарили: 1 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
2. Указанного куска в моем config.php вообще нет. Я должен был как-то сам догадаться или где-то на форуме найти? Я все больше и больше понимаю, что система точно не для интеграторов, а пока только для разработчиков
-
- Сообщения: 521
- Зарегистрирован: Вс апр 07, 2013 9:30 pm
- Откуда: Moscow
- Благодарил (а): 2 раза
- Поблагодарили: 58 раз
- Контактная информация:
Re: 0.8.0b не запускается основной цикл
Сборкой дистрибутива занимается Сергей. Дистрибутив отличается немного от исходников на гитхабе.
Дистрибутив, на сколько я понимаю, только для винды и туда этот скрипт вообще никак не подходит.
Установка под линукс была описана на формуме в отдельной ветке и на сайте в вики тоже вроде присутствует.
Да, многие вещи к коде написаны не совсем так как это должно быть. Но на исправление нужно потратить время, которое нужно еще где-то найти. Если это какой-то критичный косяк, то его правят быстро, если нет то по мере сил и возможностей.
Про циклы могу сказать следующее:
1. Отключить все циклы
2. Запустить один цикл.
3. Посмотреть не отвалился ли он.
4. Если цикл отвалился, то искать место на котором он отвалился. Если все ок и ничего не упало, то продолжить со второго пункта.
Config.php. Честно говоря, меня немного смутил этот config.php, так как когда я его делал из файла config.php.sample, то там этот кусок кода был.
p.s. MDM я развернул на Debian Gnu/Linux. Исходники брал с гитхаба. В качестве железа? на котором все крутится, выступает HP Microserver Gen8. Так вот... пока я не заставил замолчать алису, у меня mdm падал из-за того что на данном серваке нет звуковухи.
Дистрибутив, на сколько я понимаю, только для винды и туда этот скрипт вообще никак не подходит.
Установка под линукс была описана на формуме в отдельной ветке и на сайте в вики тоже вроде присутствует.
Да, многие вещи к коде написаны не совсем так как это должно быть. Но на исправление нужно потратить время, которое нужно еще где-то найти. Если это какой-то критичный косяк, то его правят быстро, если нет то по мере сил и возможностей.
Про циклы могу сказать следующее:
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
Majordomo (GitHub) на HP Microserver Gen8. OS Debian Stretch